gpt4 book ai didi

iphone - NSArray writeToFile 失败

转载 作者:行者123 更新时间:2023-12-03 18:19:06 27 4
gpt4 key购买 nike

我试图将一个数组(其中包含一些字典)保存到 plist 文件中,但失败了。我没有收到任何错误。我在代码中使用另一个数组执行了与上面完全相同的几行,并且有效。.我不明白为什么它不保存文件。

这是我保存文件的位置:(请参阅下面的一些调试器输出)

// When built parse through dictionary and save to file
for ( NSString *keys in [dicByCountry allKeys] )
{
NSArray *arrr = [[NSArray alloc] initWithArray:[dicByCountry objectForKey:keys]];
NSString *fname = [self filePath:[NSString stringWithFormat:@"regions.cid%@.plist",keys]];
if (![arrr writeToFile:fname atomically:YES])
NSLog(@"Could not write file regions.cid%@.plist",keys);
}

这里有一些 GDB 输出

(gdb) po fname
/Users/chris/Library/Application Support/iPhone Simulator/4.0/Applications/44A9FF9E-5715-4BF0-9BE2-525883281420/Documents/regions.cid0.plist


(gdb) po arrr
<__NSArrayI 0x8022b30>(
{
countryID = "<null>";
region = "?\U00e2vora";
regionID = 16;
},
{
countryID = "<null>";
region = Vicenza;
regionID = 14;
},
{
countryID = "<null>";
region = Wales;
regionID = 23;
}
)

最佳答案

如果您阅读the documentation严格来说,writeToFile:atomically: 期望数组仅包含可以写入 plist 文件的对象。

仅限以下类型的对象:

  • NSString
  • NSData
  • NSDate
  • NSNumber
  • NSArray
  • NSDictionary

是允许的。如果您要保存的数组中有数组或字典,它们的值将按照相同的标准进行检查。

这比 NSArray 中通常允许的限制要严格一些。特别是,值 [NSNull null] 是 Not Acceptable 。

关于iphone - NSArray writeToFile 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3010363/

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