我的应用程序有一个核心数据db,在第一次启动时填充以供离线使用.然后,每次启动时都会使用在线数据库同步此数据库.只有第一次启动包含大量数据.该应用程序还从Web获取一些图像,然后将这些图像转换为二进制数据并保存到核心数据以供离线使用.这仅在用户导航到包含某些图像的部分时才会发生,并且仅提取这些图像(应用程序不会一次性获取所有图像,仅在需要时).
我正在使用魔法记录.
我不会在运行时将任何类型的数据保存到文件中.但是我的应用程序被拒绝了这条消息:
我们发现您的应用不符合iOS数据存储指南,这是根据App Store审核指南所要求的.
它建议我检查"设置> iCloud>存储和备份>管理存储",但我的应用程序甚至没有显示.
我知道我应该将核心数据标记为不对iCloud进行bakcup,但我不明白如何做到这一点.据说我应该实现这样的东西,但不知道如何将它应用到我的核心数据文件.
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL {
assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);
NSError *error = nil;
BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
forKey: NSURLIsExcludedFromBackupKey error: &error];
if(!success){
NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
}
return success; }
Run Code Online (Sandbox Code Playgroud)
寻找:NSPersistentStoreCoordinator+MagicalRecord.m
然后,找到:
- (NSPersistentStore *)MR_addSqliteStoreNamed:(id)storeFileName withOptions:(__autoreleasing NSDictionary *)options
Run Code Online (Sandbox Code Playgroud)
在该方法的底部,您将看到:
if (!store)
{
[MagicalRecord handleErrors:error];
}
Run Code Online (Sandbox Code Playgroud)
将其更改为:
if (!store)
{
[MagicalRecord handleErrors:error];
}
else
{
[self addSkipBackupAttributeToItemAtURL:url];
}
Run Code Online (Sandbox Code Playgroud)
如果该方法对您来说看起来有所不同,请告诉我,但这就是我自己的实现中使用的方法。只需确保您输入问题中提到的功能即可。
| 归档时间: |
|
| 查看次数: |
1158 次 |
| 最近记录: |