La operación no se pudo completar. (Error de cocoa 260.)

Soy nuevo en el desarrollo de IOS y estoy trabajando en una aplicación de PDF y necesito almacenar un file PDF en una variable NSData, tengo la ruta de PDF, pero recibo este post de error cuando trato de poner este pdf en el NSData variable usando dataWithContentsOfFile ella es mi código simple:

NSError *error; NSString *PdfPath = [NSString stringWithFormat:(@"%@"),document.fileURL ]; NSString *newPath = [PdfPath stringByReplacingOccurrencesOfString:@"file://localhost" withString:@""]; NSLog(@"OriginalPdfPath => %@", newPath); NSData *pdfData = [NSData dataWithContentsOfFile:newPath options:NSDataReadingUncached error:&error]; 

Nota: la ruta del pdf está en este formatting: /Users/bluesettle/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/BBEF320E-7E2A-49DA-9FCF-9CFB01CC0402/ContractApp.app/Pro.iOS.Table.Views .pdf

gracias por tu ayuda

Cocoa error 260 es un NSFileReadNoSuchFileError (como se enumera en FoundationErrors.h ), lo que significa que el file no se pudo encontrar en la ruta especificada.

El problema es que su ruta aún contiene espacios codificados ( %20 ), porque lo está basando en la URL. Simplemente puede hacer esto:

 NSData *pdfData = [NSData dataWithContentsOfFile:[document.fileURL path]]; 

Intenta usar NSBundle

 NSString *newPath = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"pdf"] 

Editar:

De que puede usar el método bundleWithPath , aquí hay un ejemplo:

 NSString *documentsDir= [NSString stringWithFormat:@"%@/Documents", NSHomeDirectory()]; NSString *newPath= [[NSBundle bundleWithPath:documentsDir] bundlePath];