gpt4 book ai didi

iphone - 更新应用程序后,uitableview 中的数据不会被删除

转载 作者:行者123 更新时间:2023-12-03 21:17:54 26 4
gpt4 key购买 nike

我在这里阅读了很多关于此的主题,但我还没有找到它。

我想要一个 UITableView,我可以在其中放置一些字典,并在其中包含带有某些字段的单词(大约 4 个)。到目前为止还可以,但我的问题是在将应用程序升级到新版本后不删除数据的最佳方法是什么。我的意思是,当用户升级应用程序时,所有这些单词/词典都不会因为更新而被删除。

我不知道是否应该使用单词类的 NSMutableArray(例如),或者使用 Core Data 或 SQLite。

任何帮助将不胜感激。提前致谢。

最佳答案

如果您的字典实际上是 NSDictionaries,那么使用 NSCoding 协议(protocol)将它们序列化到文档内的文件是简单、快速且可靠的。如果您升级应用程序,文档目录的内容将保持不变。

这是我在我的一个应用程序中使用的代码(它保存用户喜爱的报价列表)

- (BOOL) saveQuotesToDisk
{
//get path to events list
NSArray * dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * fullpath = [NSString stringWithFormat:@"%@/%@", [dirPaths objectAtIndex:0], @"FavQuoteList.plist"];

//create data to be saved
NSMutableDictionary * rootObject = [NSMutableDictionary dictionary];
[rootObject setValue: _SavedQuotes forKey:@"_SavedQuotes"];

//write data
bool success = [NSKeyedArchiver archiveRootObject: rootObject
toFile: fullpath];

if (success) NSLog(@"Quotes list saved.");
else NSLog(@"ERROR on saving quotes list!");

return success;
}

- (BOOL) readFavoriteQuotesFromDisk
{
//get path to quote list
NSArray * dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * fullpath = [NSString stringWithFormat:@"%@/%@", [dirPaths objectAtIndex:0], @"FavQuoteList.plist"];

//read data
NSDictionary * rootObject = [NSKeyedUnarchiver unarchiveObjectWithFile: fullpath ];
_SavedQuotes = [[rootObject valueForKey:@"_SavedQuotes"] retain];

//check data
if (_SavedQuotes == nil) return NO;
else return YES;
}

您可以向rootObject添加更多对象,只要它们符合 NSCoding 协议(protocol)即可。

关于iphone - 更新应用程序后,uitableview 中的数据不会被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8860187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com