【发布时间】:2015-05-30 18:12:09
【问题描述】:
我知道 obj-c,但我学得很快。
在 obj-c 中,当使用核心数据时,您对数据进行建模并告诉 xcode 生成模型的 nsmanageobject 子类。 然后在代码中将其初始化为
#import MyObject
- (void) someMethod
{
MyObject *my = (Card *) [NSEntityDescription insertNewObjectForEntityForName:@"Card" inManagedObjectContext:[self managedObjectContext]];
my.name = @"some name";
}
我正在尝试做同样的事情,但我似乎无法弄清楚如何初始化我的自定义对象。 这就是我所拥有的:
生成的 NSManagedObject 子类:
导入基础 导入核心数据
class Card: NSManagedObject
{
@NSManaged var card_name: String
@NSManaged var card_id: String
@NSManaged var card_issuer: String
@NSManaged var card_type: String
}
然后我尝试在另一个类上使用它,像这样:
var card : Card
card.card_name = "Some Name"
card.card_issuer = "HOA"
card.card_type = "Rec Center"
card.card_id = "123"
但我得到的错误是:
在初始化之前使用的变量“卡片”
我显然错过了一个步骤,但我无法指出它是什么。
此外,正如几位 iOS 讲师所提到的,您不应该混淆生成的 NSManagedObject 子类。
有什么建议吗?
编辑 我现在收到一个错误:(可能是一个新的 SO 问题...)
CoreData:警告:无法为实体“卡”加载名为“卡”的类。找不到类,改用默认的 NSManagedObject。
这里是显示这个类在构建阶段是如何存在的屏幕截图,并且实体名称已在 xcdatamodeld 文件中设置
谢谢
【问题讨论】: