我正在尝试将数据写入我的plist
文件中,该文件是在我应用的沙箱中的Library/Caches
中创建的,并使用以下自定义帮助方法:
-(void)saveStatusesToPlist:(NSArray *)array
{
NSDictionary *dict = @{@"data": array};
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachesDirectory = [paths objectAtIndex:0];
NSString *plistPath = [cachesDirectory stringByAppendingPathComponent:filepath];
NSLog(@"PATH: %@", plistPath);
NSFileManager *manager = [NSFileManager defaultManager];
if (![manager fileExistsAtPath:plistPath]) {
BOOL isCreated = [manager createFileAtPath:plistPath contents:nil attributes:nil];
NSLog(@"Result:%@", isCreated? @"Success": @"Failed");
}
BOOL flag = [dict writeToFile:plistPath atomically:YES];
NSLog(@"Write result:%@", flag? @"Success": @"Failed");
}
请注意,参数:array
是从NSDictionary
数据转换而来的许多JSON
个对象的数组,这些数据是通过网络从服务器端获取的。
更新 我得到了这样的数组:
NSArray *array = [result objectForKey:@"array"];
但结果总是失败。
所以我怀疑这个问题来自可能包含无效数据的array
。然后我尝试将array
硬编码为@[@"key1": @"value1", @"key2": @"value2", @"key3": @"value3"]
。
使用硬编码数据,flag
会返回YES
,表示已保存。
所以至少我可以说我提取的数据有问题,但我不知道它在哪里。
答案 0 :(得分:0)
似乎问题是在字典的大小... 我创建了包含30个字典的数组,每个字典有40个项目。我写不出来...... 但!!! ;) 你可以做这样的事情:
Dictionary<string, object> student = new Dictionary<string, object>();
student["name"] = "Alex";
在这种情况下 - 一切正常。