addPersistentStoreWithType 为 iCloud 存储返回错误“尝试插入零密钥”
Posted
技术标签:
【中文标题】addPersistentStoreWithType 为 iCloud 存储返回错误“尝试插入零密钥”【英文标题】:addPersistentStoreWithType Returns Error 'attempt to insert nil key' for iCloud Storage 【发布时间】:2013-09-04 16:59:15 【问题描述】:我正在尝试在 iCloud 中创建核心数据存储,但是当我第一次尝试添加持久存储(预期创建)时,我收到错误...
'-[__NSCFDictionary setObject:forKey:]: 尝试插入零键'
我看过其他一些类似的帖子,但这些建议已经在我的代码中。这是我的代码 sn-p。
// set options
NSURL *ubiquitousContentURL = [ubiq URLByAppendingPathComponent:@"TransactionLogs"];
NSString *storeUbiquitousContentName = @"ProgressData";
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
ubiquitousContentURL, NSPersistentStoreUbiquitousContentURLKey,
storeUbiquitousContentName, NSPersistentStoreUbiquitousContentNameKey, nil];
// get url for progress db
NSURL *progressUrl = [ubiq URLByAppendingPathComponent:@"Documents/LocalData.nosync/ProgressData.sqlite"];
// create or open core data sql progress database
NSError *error = nil;
progressModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
progressContext = [[NSManagedObjectContext alloc] init];
progressPsc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:progressModel];
[progressContext setPersistentStoreCoordinator:progressPsc];
[progressPsc lock];
[progressPsc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:progressUrl options:options error:&error];
[progressPsc unlock];
谢谢 雷
【问题讨论】:
【参考方案1】:发现问题。看来我必须手动创建“LocalData.nosync”目录。如果它不存在,则不会被创建。
【讨论】:
以上是关于addPersistentStoreWithType 为 iCloud 存储返回错误“尝试插入零密钥”的主要内容,如果未能解决你的问题,请参考以下文章
创建 addPersistentStoreWithType 方法使用的选项字典时应用程序崩溃
使用无效 URL 调用 addPersistentStoreWithType 时崩溃 - 路径中的文件似乎不是 SQLite 数据库
iOS:NSPersistentStoreCoordinator addPersistentStoreWithType:configuration:URL:options:error 会导致哪些错误:
释放错误 [NSPersistentStoreCoordinator initWithManagedObjectModel]