要重命名.xcdatamodel文件,需要做什么。正在重命名.xcdatamodel文件名,并正在更改...
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"newfilename" withExtension:@"momd"];
__managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return __managedObjectModel;和
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"newfilename.sqlite"];不起作用!我得到以下错误:
2011-04-11 17:19:54.164 ProjectName[5826:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot create an NSPersistentStoreCoordinator with a nil model'
*** Call stack at first throw:
(
0 CoreFoundation 0x00fa15a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x010f5313 objc_exception_throw + 44
2 CoreData 0x00013853 -[NSPersistentStoreCoordinator initWithManagedObjectModel:] + 419
3 ProjectName 0x00003471 -[ProjectNameAppDelegate persistentStoreCoordinator] + 257
4 ProjectName 0x000031a4 -[ProjectNameAppDelegate managedObjectContext] + 100
5 ProjectName 0x000028ca -[ProjectNameAppDelegate makeSplitViewController] + 762
6 ProjectName 0x00002d44 -[ProjectNameAppDelegate application:didFinishLaunchingWithOptions:] + 68
7 UIKit 0x001f3c89 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163
8 UIKit 0x001f5d88 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 439
9 UIKit 0x00200617 -[UIApplication handleEvent:withNewEvent:] + 1533
10 UIKit 0x001f8abf -[UIApplication sendEvent:] + 71
11 UIKit 0x001fdf2e _UIApplicationHandleEvent + 7576
12 GraphicsServices 0x018f9992 PurpleEventCallback + 1550
13 CoreFoundation 0x00f82944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
14 CoreFoundation 0x00ee2cf7 __CFRunLoopDoSource1 + 215
15 CoreFoundation 0x00edff83 __CFRunLoopRun + 979
16 CoreFoundation 0x00edf840 CFRunLoopRunSpecific + 208
17 CoreFoundation 0x00edf761 CFRunLoopRunInMode + 97
18 UIKit 0x001f57d2 -[UIApplication _run] + 623
19 UIKit 0x00201c93 UIApplicationMain + 1160
20 ProjectName 0x00002599 main + 121
21 ProjectName 0x00002515 start + 53
)
terminate called after throwing an instance of 'NSException'注意:我使用的是Xcode4。
发布于 2011-05-04 00:41:45
我在Xcode4上也遇到了同样的问题,我不知道Xcode3的行为是什么。
首先,当您在xcode中添加核心数据模型时,实际上会得到一个与.xcodeproj文件类似的.xcdatamodeld文件。在finder中,你可以右击它并“显示包内容”。您将看到它包含一个.xcdatamodel文件。
在我看来,您不能使用xcode完全重命名它。Xcode将更改您在UI中看到的包文件( momd)的名称,但在文件系统上它实际上并没有更改。
您得到的nil模型错误是因为它找不到新的文件名momd,因为它在磁盘上仍然具有旧名称。(我猜)
我使用我想要的名称创建了一个新模型,然后在现有模型中,您可以单击并拖动并选择您的实体,然后将它们粘贴到新模型文件中。然后,您可以删除旧的并将所有更改提交到您的SCM。
发布于 2012-03-12 18:41:55
有一个名为.xccurrentversion的隐藏文件,它应该与您的whatever.xcdatamodeld文件位于相同的位置。里面有一个对你的模型的引用,需要用新的名称更新。
在某些情况下,您必须从项目中删除.xcdatamodeld文件,然后重新添加它才能正常工作。
发布于 2011-10-12 03:18:24
感谢你们帮助我最终解决了这个问题。以下是我在Xcode 4.2中重命名项目后如何修复此问题的方法:
1)删除项目中对*.xcdatamodeld文件的引用。如果它类似于我的编辑器,那么当您选择它时,编辑器将不会加载。这告诉我在重命名中有一个链接断开了。
2)右击项目的.xcdoeproj文件,选择“显示包内容”。
3)将找到的*.xcdatamodeld文件拖回到您的项目中。好了。
我的应用程序构建
https://stackoverflow.com/questions/5621178
复制相似问题