我正在尝试更改对象属性的值(从 .plist 未存档),但它似乎不起作用......我现在正试图找出问题所在,我非常感谢任何帮助。
编码:
NSArray * pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * pathToSave = [[pathArray objectAtIndex:0] stringByAppendingPathComponent:@"ownProfileArchive"];
OwnProfileData * OwnProfile = [NSKeyedUnarchiver unarchiveObjectWithFile:pathToSave];
[OwnProfile setName:[NameField text]]; // at that point, even if I change the name to a string saying "Hello!", It would always be NULL!
NSLog(@"Name = %@", [OwnProfile Name]); // Here I can see it is always null.
[NSKeyedArchiver archiveRootObject:OwnProfile toFile:pathToSave];
现在我第一次运行它,指定的路径可能没有文件,我认为应用程序“不会介意”,因为文档说 NSKeyedArchiver 将创建一个文件,如果没有一个存在的。问题是:如果没有文件,创建对象的代码 (NSKeyedUnarchiver) 将创建一个功能对象,因为它确实返回值 o 'NULL',但我无法更改它...如果一个文件必须存在,检查文件是否存在并创建一个如果不存在的代码是什么?(我认为会涉及到 If-Else Conditional,但我不知道条件是什么以及如何创建新文件......)。