Xcode 8更新:
在Xcode 8中,需要转到Core Data Model Editor和Show the File Inspector.靠近底部是代码生成的选项.选择Swift.
编辑:我找到了从Core Data实体生成Swift模型的解决方案:
在Xcode上:
编辑>创建NSManagedOjbect>单击按钮"下一步">单击"下一步"按钮>选择"Swift"Langage>单击"创建"按钮
我使用Core Data在Xcode 6 beta上创建了一个新的Swift项目,尝试了Swift语言.
当我从Core Data的实体生成模型时,Xcode创建了Objective-C模型.
有没有办法用Core Data生成Swift模型而不是Obejctive-C模型?
谢谢 !
我对CoreData有一点该死的问题.我想插入一个新的Object,所以我首先要创建一个.这是由该代码完成的:
Challenges *newChallenge = [[Challenges alloc] init];
[newChallenge setName:@"TestChallenge"];
[newChallenge setRounds:[[NSNumber alloc] initWithInt:12]];
[newChallenge setShots:[[NSNumber alloc] initWithInt:5]];
[newChallenge setDate:[NSDate date]];
Run Code Online (Sandbox Code Playgroud)
但是在alloc init之后我得到了这个错误:
CoreData: error: Failed to call designated initializer on NSManagedObject class 'Challenges'
Run Code Online (Sandbox Code Playgroud)
黑客出了什么问题?
我确实一直在这个问题上停留,我已经提到了这个 stackoverflow帖子,但是我的应用程序仍然因该问题而崩溃:
无法在NSManagedObject类上调用指定的初始化程序
因此,我有多个实体,并且将子类化NSManagedObject。假设我有一个名为的实体:FirstEntity, SecondEntity, ThirdEntity, Fourth Entity, FifthEntity.假设我有两个firstAttribute, secondAttribute在每个实体中命名的属性。我进入xcdatamold打开的编辑器,然后为我的所有实体选择创建NSManagedObject子类。然后,我想实例化每个新的NSManagedObject子类,以便可以访问中的属性FirstEntity。所以我写了这段代码:
let firstEntity = FirstEntity()
Run Code Online (Sandbox Code Playgroud)
然后,当我运行该应用程序时,它崩溃了,所以我用stackoverflow帖子中的提示对其进行了进一步编辑,现在这是我的代码:
let firstEntityName = NSEntityDescription.entityForName("FirstEntity", inManagedObjectContext: managedObject)
let firstEntity = FirstEntity.init(entity: firstEntity!, insertIntoManagedObjectContext: managedObject)
Run Code Online (Sandbox Code Playgroud)
但是,我的代码仍然崩溃。我真的很无能为力,因为所有与该问题有关的堆栈溢出操作都可以完成上述操作,但是我的代码仍然崩溃,无法在NSManagedObject类错误上调用指定的初始化程序。
有什么建议么?