【发布时间】:2019-03-29 12:39:48
【问题描述】:
我是 Objective-C 编程的新手,我正在尝试将一个新的字典对象写入一个包含字典数组的 plist,以保存数据。
我的 plist 结构是:
<plist>
<array>
<dict>
<key>toyName</key>
<string>N64</string>
<key>toyBrand</key>
<string>Nintendo</string>
</dict>
</array>
</plist>
我尝试编写新字典的功能:
-(void)saveData {
NSFileManager *fm = [NSFileManager new];
NSError *err = nil;
NSURL *docsurl = [fm URLForDirectory:NSDocumentDirectory
inDomain:NSUserDomainMask
appropriateForURL:nil
create:YES
error:&err];
NSURL *url = [docsurl URLByAppendingPathComponent:@"Toy.plist"];
NSMutableArray *plistData = [NSMutableArray arrayWithContentsOfURL:url];
NSMutableDictionary *newDict = [[NSMutableDictionary alloc]init];
NSDate * now = [NSDate date];
[newDict setValue:itemText.text forKey:@"toyName"];
[newDict setValue:brandText.text forKey:@"toyBrand"];
[plistData addObject:newDict];
}
调用saveData函数时,我使用NSLog打印时plistData数组还是一样的,plist没有变化。如何将新的字典对象写入包含字典数组的 plist?
【问题讨论】:
-
你在哪里打印了
plistData和NSLog? -
@RyanB 我直接打印在 NSMutableArray *plistData = [NSMutableArray arrayWithContentsOfURL:url];
-
什么没有改变? plist 一直显示
nil或其列表未更新为newDict? -
调试你的代码,逐行遍历它,你应该能够识别出有问题的代码。
标签: ios objective-c arrays dictionary plist