我的问题是我正在为iPhone / iPad制作网页浏览器,我在添加书签时测试了书签系统和tableview plist数据更新。它可以在模拟器端工作但是当我使用我的iPhone测试应用程序时,它没有显示更新tableview我通过xcode向plist添加了一些数据,我添加的数据显示在iPhone上但仍然没有更新显示新的您通过app plist文件输入的条目称为“bookmarks.plist”,问题是什么?
这里写入bookmarks.plist的代码
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [paths objectAtIndex:0];
NSString *plistPath = [documentDirectory stringByAppendingPathComponent:@"bookmarks.plist"];
if (![fileManager fileExistsAtPath:plistPath]) {
plistPath = [[NSBundle mainBundle] pathForResource:@"bookmarks" ofType:@"plist"];
//[[NSFileManager defaultManager] copyItemAtPath:plistPath toPath:plistPath error:NULL];
}
NSMutableArray *dataRoot = [NSMutableArray arrayWithContentsOfFile:plistPath];
NSMutableDictionary *item = [[NSMutableDictionary alloc] init];
[item setObject: _titleField.text forKey:@"title"];
[item setObject:_urlField.text forKey:@"url"];
[dataRoot addObject:item];
[dataRoot writeToFile:plistPath atomically:YES];
答案 0 :(得分:0)
看起来你的plist文件不在设备上的文档目录中,也不是你在运行时将它复制到那里(注释了LOC)。
所以plistPath
将为nil
如果您的plistPath
是从NSBundle创建的,则
[dataRoot writeToFile:plistPath atomically:YES];
文件将不会被写入,因为包资源是只读的。
此信息可以在某种程度上帮助您。