0

我写了下面的代码来将 nsmutablearray 写入文件管理器。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

// the path to write file
NSString *arrayFile = [documentsDirectory stringByAppendingPathComponent:arrayName];
[imagesarray writeToFile:arrayFile atomically:YES];

但是文件 id 没有在 NSFilemanager 中创建,我没有得到可能是问题所在。

谁能告诉我原因。

4

1 回答 1

2

有几件事可能会导致这段代码失败。要检查的事情是: 1) 确保 arrayFile 的值是应用程序沙箱绝对路径中的正确文件名。它不能在应用程序包中或沙盒之外。2) 确保 imagesArray 中的所有元素都可通过此方法写入。此方法只会写入 NSString、NSNumber、NSDate、NSData、NSArray 和 NSDictionary 对象。如果对象是 NSDictionary 或 NSArray,那么每个元素或子元素也必须是这四种类型之一。

数组的名称意味着您正在编写一个图像数组。这是行不通的,因为 UIImage 不是这 6 种神圣类型之一。您可以使用如下代码段将 UIImage 转换为 JPEG 或 PNG 表示:

UIImage *image = [UIImage imageNamed:@"myimage.png"];
NSData *data = UIImagePNGRepresentation(image, 1.0);
于 2012-04-24T11:59:10.283 回答