gpt4 book ai didi

iphone - writeToFile :atomically: not working in 4. 1 SDK 及以下版本,但适用于 4.2 beta SDK

转载 作者:行者123 更新时间:2023-12-03 20:57:30 25 4
gpt4 key购买 nike

我使用以下代码写入 plist(假设已经填充了 dict):

[dict writeToFile:[appDelegate dataFilePath] atomically:YES];

我的应用程序代理中的位置:

- (NSString *)dataFilePath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:kFilename];
}

我使用以下命令从磁盘读取 plist:

NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithContentsOfFile:[appDelegate dataFilePath]];

这在编译我的应用程序 4.2 时有效,但由于我将其降低到 4.1 进行分发,它停止工作。

[dict writeToFile:[appDelegate dataFilePath] atomically:YES];

返回NO。这里出了什么问题?

最佳答案

我猜想其他一些更改会导致您的字典中出现非 plist 类型的对象。看看如果将“生成 plist”和“写入 plist”步骤分开会发生什么:

/* Generate plist. */
NSError *error = nil;
NSData *data = [NSPropertyListSerialization
dataFromPropertyList:dict
format:NSPropertyListBinaryFormat_v1_0
options:0/*unused*/
error:&error];
if (!data) {
NSLog(@"%s: Failed to serialize data: %@", __func__, error);
return;
}

/* Write data. */
NSString *path = [appDelegate dataFilePath];
BOOL ok = [data writeToFile:dataFilePath options:NSDataWritingAtomic error:&error];
if (!ok) {
NSLog(@"%s: Failed to write atomically to path %@: %@", __func__, path, error);
}

关于iphone - writeToFile :atomically: not working in 4. 1 SDK 及以下版本,但适用于 4.2 beta SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4002520/

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