我现在已经两次遇到这个问题:Xcode4.1、Lion和一个NSPersistentDocument核心数据项目。
我的程序一直运行良好,直到我向模型中的一个实体添加了两个“二进制数据”属性。现在,当我运行应用程序并尝试保存文档时,configurePersistentStoreCoordinatorForURL:ofType:modelConfiguration:storeOptions:error:中抛出了一个异常。
上一次我开始收到这个错误是在我更新项目目标设置中的设置时。当时,重置更改后的设置没有任何效果,我必须从备份中恢复Xcode项目文件,然后它才能工作-所以它与代码无关。
这是抛出异常时的日志:
2011-08-27 17:34:00.867 MyAppName[5690:707] Unsupported store type.
2011-08-27 17:34:00.879 MyAppName[5690:707] (
0 CoreFoundation 0x00007fff8ae0e986 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff8e28cd5e objc_exception_throw + 43
2 CoreData 0x00007fff9576776a -[NSPersistentStoreCoordinator addPersistentStoreWithType:configuration:URL:options:error:] + 1530
3 AppKit 0x00007fff9190af88 -[NSPersistentDocument configurePersistentStoreCoordinatorForURL:ofType:modelConfiguration:storeOptions:error:] + 554
4 MyAppName 0x0000000100001af4 -[MyAppNameDocument configurePersistentStoreCoordinatorForURL:ofType:modelConfiguration:storeOptions:error:] + 244
5 AppKit 0x00007fff91bc6697 -[NSPersistentDocument(NSDeprecatedInternal) _configurePersistentStoreCoordinatorForURL:ofType:error:] + 172
6 AppKit 0x00007fff91909a82 -[NSPersistentDocument writeToURL:ofType:forSaveOperation:originalContentsURL:error:] + 418
7 MyAppName 0x0000000100001c51 -[MyAppNameDocument writeToURL:ofType:forSaveOperation:originalContentsURL:error:] + 161
8 AppKit 0x00007fff917c5062 -[NSDocument _writeSafelyToURL:ofType:forSaveOperation:forceTemporaryDirectory:error:] + 581
9 AppKit 0x00007fff917aeaba -[NSDocument _writeSafelyToURL:ofType:forSaveOperation:error:] + 27
10 AppKit 0x00007fff917c4e0b -[NSDocument writeSafelyToURL:ofType:forSaveOperation:error:] + 344
11 AppKit 0x00007fff919095d1 -[NSPersistentDocument writeSafelyToURL:ofType:forSaveOperation:error:] + 1073
12 AppKit 0x00007fff917cdee4 __-[NSDocument saveToURL:ofType:forSaveOperation:completionHandler:]_block_invoke_8 + 329
13 AppKit 0x00007fff917cd5ca __-[NSDocument saveToURL:ofType:forSaveOperation:completionHandler:]_block_invoke_14 + 451
14 AppKit 0x00007fff917cdcbd __-[NSDocument saveToURL:ofType:forSaveOperation:completionHandler:]_block_invoke_7 + 1459
15 Foundation 0x00007fff94079f34 -[NSFileCoordinator(NSPrivate) _invokeAccessor:orDont:thenRelinquishAccessClaimForID:] + 202
16 Foundation 0x00007fff9407cdd5 -[NSFileCoordinator(NSPrivate) _coordinateWritingItemAtURL:options:error:byAccessor:] + 663
17 AppKit 0x00007fff917c3754 -[NSDocument _fileCoordinator:coordinateReadingContentsAndWritingItemAtURL:byAccessor:] + 336
18 AppKit 0x00007fff917b1bb3 __-[NSDocument saveToURL:ofType:forSaveOperation:completionHandler:]_block_invoke_1 + 845
19 AppKit 0x00007fff917acbda -[NSDocument continueFileAccessUsingBlock:] + 227
20 AppKit 0x00007fff917c7413 -[NSDocument _performFileAccessOnMainThread:usingBlock:] + 466
21 AppKit 0x00007fff917c716b -[NSDocument performAsynchronousFileAccessUsingBlock:] + 304
22 AppKit 0x00007fff917b1860 -[NSDocument saveToURL:ofType:forSaveOperation:completionHandler:] + 91
23 AppKit 0x00007fff917b0555 __-[NSDocument saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:]_block_invoke_2 + 131
24 AppKit 0x00007fff917be5e0 -[NSDocument _commitEditingThenContinue:] + 337
25 AppKit 0x00007fff91908d32 __-[NSPersistentDocument _documentEditor:didCommit:withContext:]_block_invoke_1 + 53
26 CoreFoundation 0x00007fff8adc3b5c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
27 CoreFoundation 0x00007fff8ad7bc52 __CFRunLoopDoBlocks + 322
28 CoreFoundation 0x00007fff8ada3d37 __CFRunLoopRun + 2023
29 CoreFoundation 0x00007fff8ada3216 CFRunLoopRunSpecific + 230
30 HIToolbox 0x00007fff8ce604ff RunCurrentEventLoopInMode + 277
31 HIToolbox 0x00007fff8ce67b73 ReceiveNextEventCommon + 181
32 HIToolbox 0x00007fff8ce67aae BlockUntilNextEventMatchingListInMode + 62
33 AppKit 0x00007fff91410191 _DPSNextEvent + 659
34 AppKit 0x00007fff9140fa95 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 135
35 AppKit 0x00007fff9140c3d6 -[NSApplication run] + 463
36 AppKit 0x00007fff9168a52a NSApplicationMain + 867
37 MyAppName 0x00000001000012e2 main + 34
38 MyAppName 0x00000001000012b4 start + 52
)我当前使用的是SQLite存储类型。我还尝试删除添加到实体的属性,但得到相同的结果。我还清除了所有缓存,清理了项目,并删除了DerivedData文件夹。我还关闭了autosavesInPlace。我觉得这是Xcode的某种bug。
以前有没有人见过这个?谢谢!
发布于 2011-12-30 18:54:32
同样的事情也发生在我身上。实际上,Xcode中的bug如下(至少在我的例子中是这样):当通过从文档类型(目标->信息)的漂亮UI的弹出菜单中选择关键字“核心数据持久存储类型”(NSPersistentStoreTypeKey)的值时,Xcode将值设置为字符串"NSSQLiteStoreType“(例如)而不是"SQLite”。
直接在Info.plist中修复这个问题对我来说是可行的(不需要从头开始重新创建项目)。
发布于 2011-08-28 21:10:11
来回答我自己的问题。这是一个Xcode错误。去想一想。真让人沮丧。
我备份了我的所有源代码,从头开始重新创建了一个新项目,将源代码复制回项目中并运行它。现在一切都正常了。
很高兴知道至少不是我。
https://stackoverflow.com/questions/7217572
复制相似问题