我想创建一个可变数组与一个名为狗的自定义类的对象,并将其保存到iPhone文档目录中的文件,以便以后读出该文件并返回到我的应用程序。我尝试使用NSArray的writeToFile:atomically:方法来完成此操作,但是当我测试此方法的结果时,它始终返回NO值,并且未创建该文件,并且未存储该数组。我对此有几个问题。我应该将数组保存到什么文件格式?以原子方式将数组写入文件意味着什么?一旦数组存储在那里,如何读取文件的内容?最重要的是,为什么我的数组没有存储到指定路径的文件中?谢谢你在前进,这里是我使用我的应用程序的viewDidLoad方法中的代码:保存NSMutableArray到iPhone文档目录
NSString *documentsDir = [NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex: 0];
dogFilePath = [documentsDir stringByAppendingPathComponent:@"arrayDogsFile.plist"];
NSFileManager *fileManager = [[NSFileManager alloc] init];
NSLog(@"%@",dogFilePath);
Dog *dog1 = [[Dog alloc] init];
dog1.name = @"Dog1";
Dog *dog2 = [[Dog alloc] init];
dog2.name = @"Dog2";
Dog *dog3 = [[Dog alloc] init];
dog3.name = @"Dog3";
NSMutableArray *arrayDogs = [NSMutableArray array];
[arrayDogs addObject: dog1];
[arrayDogs addObject: dog2];
[arrayDogs addObject: dog3];
//Sorts the array in alphabetical order according to name – compareDogNames: is defined in the Dog class
arrayDogs = (NSMutableArray *)[arrayDogs sortedArrayUsingSelector:@selector(compareDogNames:)];
if ([arrayDogs writeToFile:dogFilePath atomically:YES])
NSLog(@"Data writing successful");
else
NSLog(@"Data writing unsuccessful");
查找到归档/解档 - 你的狗班将不得不采用NSCoding协议。 – 2012-04-22 16:09:37