1

在我的 iPad 中写入文件时出现此错误。但是相同的应用程序在模拟器中运行良好。我在这里附上代码。

    NSString *filepath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:doc.contentStreamFileName];
                         NSFileManager *fMngr = [NSFileManager defaultManager];
                         if ([fMngr fileExistsAtPath:filepath]) {
                             NSLog(@"File already available");
                             CMISExtensionElement *elem = [doc.properties.extensions objectAtIndex:0];
                             NSString *description = [self crop:elem.description];
                             [self loadImage:doc.contentStreamFileName desc:description];
                         }
                         else{
                             [doc downloadContentToFile:filepath completionBlock:^(NSError *error){
                                 if (nil == error) {
                                     NSLog(@"successful");
                                 }
                                 else
                                 {
                                     UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"Error retriving content" message:[NSString stringWithFormat:@"Error code: %d",error.code] delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
                                     [alert show];

                                 }
                             }progressBlock:^(unsigned long long bytesDownloaded, unsigned long long bytesTotal){
                                 if (bytesTotal == bytesDownloaded) {
                                     CMISExtensionElement *elem = [doc.properties.extensions objectAtIndex:0];
                                     NSString *description = [self crop:elem.description];
                                     [self loadImage:doc.contentStreamFileName desc:description];
                                 }
                             }];
                         }
4

2 回答 2

2

您是否考虑过写入应用程序文档目录?我认为您不应该写入应用程序包,而只能从中读取。

NSString *documentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filePath = [documentsDir stringByAppendingPathComponent:doc.contentStreamFileName];
于 2013-04-02T21:27:04.997 回答
2

您不应该尝试在应用程序的捆绑目录中写入。

如果文件由您的应用程序生成和使用,您可能应该使用 NSApplicationSupport 目录,如果您希望文件对用户可见,则应该使用 NSApplicationDocuments 目录。

它不是绝对必要的,但它的常见做法是在其中为您的文件创建一个子目录。你可以使用 NSFileManager 的 createDirectory... 方法。

于 2013-04-03T00:32:22.137 回答