gpt4 book ai didi

objective-c - 将 NSArray 写入文件

转载 作者:可可西里 更新时间:2023-11-01 06:18:51 26 4
gpt4 key购买 nike

我正在尝试将数组保存/写入文档目录,但我完全卡住了。我已经在网上通过多个来源检查了这段代码。我从 NSArray 切换到 NSMutableArray,但没有用。据我所知,文件没有被写入,因为测试返回为空。提前致谢

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);

write为null,什么意思?

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

{
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>";
}

空值与它有什么关系吗?

已解决!!

我意识到 null 值可能会导致一些问题,所以我更改了我的查询以解决这个问题并立即保存。上面的代码 100% 正确并且有效!

感谢帮助

最佳答案

根据 documentation , writeToFile: 仅在您的数组内容仅限于少数类型(NSStringNSDataNSArray)时才有效,或 NSDictionary 对象)。如果您的数组中有任何其他类型的对象,那么它将不会正确(或根本不会)写入文件。

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

如果你的数组包含不兼容的类型,你将不得不考虑使用像 NSKeyedArchiver 这样的东西。而是序列化您的数据。

关于objective-c - 将 NSArray 写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8003244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com