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]

核心数据数据加密

Core Dataeasy出现的错误