Ios 初始化时领域对象子类的实例为null
我是iOS开发和swift的新手,我正在使用Realm进行swift项目 首先,我创建了Realm对象的一个子类:Ios 初始化时领域对象子类的实例为null,ios,swift,realm,Ios,Swift,Realm,我是iOS开发和swift的新手,我正在使用Realm进行swift项目 首先,我创建了Realm对象的一个子类: enum EnumA: Int { case ValueA case ValueB } class ClassA: Object { var propA: EnumA = EnumA.ValueA var propB: Double = 0.0 } 然后我还有一节课: class ClassB: Object { var id =
enum EnumA: Int {
case ValueA
case ValueB
}
class ClassA: Object {
var propA: EnumA = EnumA.ValueA
var propB: Double = 0.0
}
然后我还有一节课:
class ClassB: Object {
var id = 0
var name: String = ""
let aLotOfA = List<ClassA>()
override static func primaryKey() -> String? {
return "id"
}
}
我有一门课:
class ClassD: Object {
let aB: ClassB = ClassC.cManager.defaultB()
}
当我调用defaultB()
时,第一行(让instanceA=ClassA()
)使instanceA为null。我一直在控制台中收到这样的消息:
"Object type '(null)' does not match RLMArray type 'ClassA'."
或
我不知道这里怎么了。请有人帮帮我,非常感谢
和我的环境:
Mac OS X 10.11.1+Xcode 7.1
领域是最新的(刚从Realm.io下载)
基本SDK:iOS 9.1
部署目标:iOS 9正如所指出的,您需要使用动态var
声明所有持久化属性。这不适用于List
和RealmOptional
属性
此外,领域不支持枚举。您需要将属性ClassA.propA
声明为Int
,并使用rawValue
初始化其默认值:
class ClassA {
var propA: Int = EnumA.ValueA.rawValue
…
}
“一对一”关系必须始终标记为可选。这就是属性
ClassD.aB
的情况,根据领域文档,尝试将变量声明:var-variable
替换为:动态var-variable
。
"The `ClassD.aB` property must be marked as being optional."
class ClassA {
var propA: Int = EnumA.ValueA.rawValue
…
}