Core data iOS从远程源更新核心数据文件
我有一个iOS 7应用程序,带有一个静态(用户无法编辑)coredata文件。偶尔必须更新此文件。比如更新烹饪书中的食谱或通讯簿中的电话号码 应用程序本身(二进制文件)保持不变 我从来没有做过这样的事。我在寻找学习的起点(指南或谷歌搜索词),而不是具体的解决方案Core data iOS从远程源更新核心数据文件,core-data,ios7,remote-access,auto-update,Core Data,Ios7,Remote Access,Auto Update,我有一个iOS 7应用程序,带有一个静态(用户无法编辑)coredata文件。偶尔必须更新此文件。比如更新烹饪书中的食谱或通讯簿中的电话号码 应用程序本身(二进制文件)保持不变 我从来没有做过这样的事。我在寻找学习的起点(指南或谷歌搜索词),而不是具体的解决方案 我应该为此使用哪些框架 我需要自己的Web服务器吗 如何确保应用程序收到正确的数据文件 同样,我如何确保只有我的应用程序请求数据 我应该如何处理安全问题?我怎么知道是我在发送更新 可能我必须向应用程序发送通知,告诉它从某处下载数据?我是
可能我必须向应用程序发送通知,告诉它从某处下载数据?我是否应该在应用程序中硬编码服务器地址,从何处下载数据?我正在使用一个简单的网站来实现这一点。我在网站上有一个带有版本号(或日期)的文本文件。我的代码只是下载文件,用数据库中的version字段检查版本或日期。如果是较新的,则会激活下载按钮 下载按钮下载一个zip文件(不必是zip),提取它们并用新的onen替换现有的核心数据文件。到目前为止(自2012年以来),它一直在正常工作 尽管推荐的方法是逐个删除core数据库中的所有数据,并使用远程源只更新数据,但我使用的方法只是替换core数据库的sqlite文件和相关文件。下面是代码片段:-
//removing the core data files
NSString *finalPath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents/NTTimeTable.sqlite"];
[[NSFileManager defaultManager] removeItemAtPath:finalPath error:nil];
finalPath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents/NTTimeTable.momd/NTTimeTable.mom"];
[[NSFileManager defaultManager] removeItemAtPath:finalPath error:nil];
finalPath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents/NTTimeTable.momd/NTTimeTable.omo"];
[[NSFileManager defaultManager] removeItemAtPath:finalPath error:nil];
finalPath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents/NTTimeTable.momd/VersionInfo.plist"];
[[NSFileManager defaultManager] removeItemAtPath:finalPath error:nil];
// Unzipping downloaded file
finalPath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents"];
[SSZipArchive unzipFileAtPath:tempFilePath toDestination:finalPath];
[[NSFileManager defaultManager] removeItemAtPath:tempFilePath error:nil];
如果你需要更多信息,请告诉我。请注意,我已将核心数据库文件移动到Documents目录,因为当它们位于原始位置时,我没有替换它们的权限
问答