写一个NSArray文件

我想保存/写入一个数组到文档目录,我完全卡住了。 我已经在线查看了多个源代码。 我从NSArray切换到NSMutableArray,并没有工作。 从我可以告诉的是文件没有被写入,因为testing返回null。 提前致谢

NSArray *results = [parser objectWithData:data1]; NSMutableArray *array2 = [[NSMutableArray alloc] initWithArray:results]; // Create a dictionary from the JSON string NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *path = [documentsDirectory stringByAppendingPathComponent:@"EmployeeData.plist"]; //NSLog(@"the path is %@, the array is %@", path, array2); /////write to file///// [array2 writeToFile:path atomically:YES]; NSMutableArray *test = [[NSMutableArray alloc ]initWithContentsOfFile:path]; NSLog(@"the test is %@", test); 

**更新**

我添加了这些代码行

 BOOL write = [results writeToFile:path atomically:YES]; NSLog(@"did it right? %@", write); 

写的是空的,那是什么意思?

这是我的数组中的许多对象之一

 { 0 = "<null>"; 1 = "John Doe"; 10 = 512; 11 = "<null>"; 12 = 1; 13 = 1; 2 = Doe; 3 = Jon; 4 = "<null>"; 5 = johndoe; 6 = "<null>"; 7 = "<null>"; 8 = "john@doe.com"; 9 = "<null>"; Type = 1; Active = 1; Depart = "<null>"; Emp = "<null>"; Ext = "<null>"; FirstName = Jim; Fl = 512; Name = "John Doe"; Log = jd; Mobile = "<null>"; Title = "<null>"; } 

空值与它有什么关系?

解决了!!

我意识到空值可能会导致一些问题,所以我改变了我的查询照顾,并立即保存。 上面的代码是100%正确的,它的工作原理!

谢谢您的帮助

根据文档 , writeToFile:仅在数组内容被限制为less数types( NSStringNSDataNSArrayNSDictionary对象)时才起作用。 如果您的数组中有任何其他types的对象,那么它将不会正确写入文件(或根本不写入)。

另请注意, writeToFile:返回一个布尔值,指示操作是否成功。

如果数组包含不兼容的types,则必须使用NSKeyedArchiver之类的东西来序列化数据。