从plist提取数据,然后永久存储在tableview的手机iphone上?
在我的应用程序中,一个是mainviewcontroller,它是uiTableviewcontroller的子类,当单击特定单元格时,它会显示detailviewcontrollerdvc,它是uiviewcontroller的子类。dvc持有textfield&button。实际上,当我点击按钮时,我会通过plist在tableviewcell上写入textfield的文本,但实际上是临时写入数据,但我想在tableview上永久写入数据。我能做些什么。这是一个基于导航的应用程序 你能给我们看一些代码吗 操作按钮的代码是什么?如何重新加载表视图 我猜你是在把单词读入词典?然后从字典中的值加载tableviews cell.text?按下按钮时,是否将文本字段文本写入NSDIctionary?你记得把词典写回plist吗?好的。 如何加载tableview单元格? 您确定col1的值是NSString类型吗? 您可能应该使用setObject:forKey:而不是SetValue:forKey:。。 tableview是否完全没有更新,或者只是在退出后没有保存? 你是在模拟器上测试还是在设备上测试? 应用程序包是设备上的只读目录,但不在模拟器中。你应使用: NSString*rootPath=[NSSearchPathForDirectoriesIndomainsDocumentDirectory, NSUserDomainMask, 是对象索引:0] NSString*plistPath=[rootPath stringByAppendingPathComponent:@listData.plist] 试试这个: 将plist加载到字典:从plist提取数据,然后永久存储在tableview的手机iphone上?,iphone,objective-c,uitableview,plist,Iphone,Objective C,Uitableview,Plist,在我的应用程序中,一个是mainviewcontroller,它是uiTableviewcontroller的子类,当单击特定单元格时,它会显示detailviewcontrollerdvc,它是uiviewcontroller的子类。dvc持有textfield&button。实际上,当我点击按钮时,我会通过plist在tableviewcell上写入textfield的文本,但实际上是临时写入数据,但我想在tableview上永久写入数据。我能做些什么。这是一个基于导航的应用程序 你能给我们
//Get the path to documents directory
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@"listData.plist"];
//if the file does not exist in documents directory, then load from the bundle.
if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {
plistPath = [[NSBundle mainBundle] pathForResource:@"listData" ofType:@"plist"];
}
//load plist into NSMutableDictionary.
nes.plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
将字典保存到plist:
//Get the path to documents directory
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@"listData.plist"];
//Write to documents directory! NOT bundle!!
[nes.plistDict writeToFile:plistPath atomically: YES];
也可使用:
[nes.plistDict setObject:txtName.text forKey:@col1];
不是:
[nes.plistDict setValue:txtName.text forKey:@col1]
如果这没有帮助,我可以在mainviewcontroller中看到您的cellForRowAtIndexPath吗?NSString*path=[[NSBundle mainBundle]pathForResource:@listData of Type:@plist]//这里是我的mainviewcontroller对象。nes.plistDict=[[NSMutableDictionary alloc]initWithContentsOfFile:path];[nes.plistDict setValue:txtName.text forKey:@col1];[nes.plistDict writeToFile:原子路径:是];[nes.tableView重新加载数据];我无法理解这个答案&col1是nsstring类型,请详细解释如何重新加载tableview。