而不是自己构建,因为这是一个非常复杂的问题,为什么不只使用RestKit之类的东西?
我正在寻找创建一个新闻的缓存管理器类,它也可以在其他iPhone项目中使用。我的缓存管理器将支持JSON数据的缓存,即文本和图像并将其本地存储在iPhone中。其背后的主要思想是使应用程序能够访问缓存的数据,从而减少网络活动。
我正在考虑通过以下方式实现此内容:
Sqlite数据库,即获取所有数据并存储
将此数据添加到某些.plist文件中
Core-Data
我尝试使用此代码作为第二个解决方案:
NSString *plistPath = [self Return_PlistPathCreation]; // Method to creat the JSON file locaally under Documents
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setValue:newsArray forKey:@"homenews"]; //newsArray is the array containing objects parsed from the JSON webservice
NSLog(@"JSON representation for dictionary is %@",[dict JSONRepresentation]); //it prints perfectly
[[dict JSONRepresentation] writeToFile:plistPath atomically:YES encoding:NSASCIIStringEncoding error:nil]; //Not not able to write it within the file
上面的代码怎么了?
因此,哪种存储方式更好,可以更好地存储缓存的数据,从而提高应用程序的性能和响应能力?尽管我乐于接受新想法,但是否还有上述以外的其他方法?
最好,更强大,最容易实现的解决方案是第三个解决方案Core-Data。如果您想在未来的新功能开发方面获得最通用的应用程序,我的建议是根据此架构范例设计您的应用程序:
为要下载的内容定义一个数据库和具有托管对象的Core-Data访问。该数据库不仅是缓存,而且是应用程序的主要数据。
在基础数据库中构建您的应用,并通过UIFetchedResultsController在所有viewController中访问数据。基于fetchedViewController委托方法实现视图的轻松刷新。
构建后台功能,与应用程序的其余部分无关,该功能从Internet下载内容并将其存储在Core-Data中。视图将自动刷新,而您作为开发人员无需您花费更多精力。
我希望这对您有用
而不是自己构建,因为这是一个非常复杂的问题,为什么不只使用RestKit之类的东西?
据我从斯坦福大学学到的。 CS193p视频讲座,您几乎应该永远不要在应用程序中使用SQLite。核心数据有些复杂,但是如果您的数据具有复杂的图形,那就更好了。我认为使用属性列表(plist)会更好:)
注意:我使用NSUserDefaults保存JSON数据并在以后用于不同的类中,this链接中也有缓存方法。
而不是自己构建,因为这是一个非常复杂的问题,为什么不只使用RestKit之类的东西?
据我从斯坦福大学学到的。 CS193p视频讲座,您几乎应该永远不要在应用程序中使用SQLite。核心数据有些复杂,但是如果您的数据具有复杂的图形,那就更好了。我认为使用属性列表(plist)会更好:)