现在,我有一个大约30 MB的JSON文件,该JSON文件是以下格式的字典:
{"chinesePhrase":[
{"traditional": "21三體綜合症", "simplified": "21三体综合症","pinyinRead": "èr shí yī sān tǐ zōng hé zhèng", "pinyinType": "er4 shi2 yi1 san1 ti3 zong1 he2 zheng4", "definition": ["trisomy","Downs syndrome"]},...
]}
然后将每个条目放入表格单元格中,并设有一个搜索栏,供用户搜索所需的单词,然后将其保存到CoreData中。
我的问题是:
每次我打开应用程序时,都必须重新解析JSON文件以填充表格单元格;有没有更好的方法来做到这一点,从而不必每次打开具有所有词典条目的视图控制器时都重新解析JSON文件?
最佳答案
你可以试试看。在appdelegate的“applicationDidBecomeActive”部分中。检查这是否是该应用程序的首次启动。如果是这样,请解析JSON数据。
然后,如果JSON解析成功,则将NSUserDefault设置为表明这一点并将数据存储在CoreData中。或者您需要做什么。
func applicationDidBecomeActive(application: UIApplication) {
let firstLaunch = NSUserDefaults.standardUserDefaults().boolForKey("FirstLaunch")
if firstLaunch {
println("Not first launch.")
}
else {
//Parse the JSON file here.
//if success set NSUserDefault
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "FirstLaunch")
//if success, store data in CoreData.
}
}
如果您想在每次启动应用程序时更新数据。假设您添加/编辑了数据,并希望用户在下次启动时获取此新的更新数据。您将必须删除NSUserDefault设置和firstLaunch逻辑。只需解析JSON文件并存储在CoreData中即可。
然后,当您需要在TableView中显示数据时,您可以轻松地从CoreData中获取数据。
关于ios - 快速更有效地加载和提取JSON文件的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31424276/