0

我的问题是我为 iPhone/iPad 制作了一个网络浏览器,并且我在添加书签时测试了书签系统和 tableview plist 数据更新。它适用于模拟器端但是当我使用我的 iPhone 测试应用程序时,它没有显示更新 tableview 我确实通过 xcode 添加了一些数据到 plist 并且我添加的数据显示在 iPhone 上,但仍然没有更新以显示新的您通过应用程序输入的条目 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];
4

1 回答 1

0

看起来您的 plist 文件不在设备上的文档目录中,您也没有在运行时将其复制到那里(已注释 LOC)。

plistPath也会如此nil

如果你plistPath是从 NSBundle 创建的,
[dataRoot writeToFile:plistPath atomically:YES]; 文件将不会被写入,因为包资源是只读的。

此信息应该以某种方式对您有所帮助。

于 2012-12-02T19:48:41.807 回答