1
我是iOS开发人员和swift的新手,我使用Realm作为我的swift项目。Realm对象子类的实例在初始化时为null
首先,我创建领域对象的一个子类:
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"
}
}
然后,我创建ClassB的实例某处:
class ClassC: NSObject {
static let cManager = ClassC()
func defaultB() -> ClassB {
let instanceA = ClassA()
let instanceB = ClassB()
instanceB.name = "String"
instanceB.aLotOfA.append(instanceA)
return instanceB
}
}
而且我有这个课程:
class ClassD: Object {
let aB: ClassB = ClassC.cManager.defaultB()
}
当我拨打defaultB()
时,第一行(let instanceA = ClassA()
)使instanceA为空。我一直在控制台接收消息是这样的:
"Object type '(null)' does not match RLMArray type 'ClassA'."
或
"The `ClassD.aB` property must be marked as being optional."
我不知道什么是错在这里做。请有人帮助我,非常感谢。
而且我的环境:
的Mac OS X 10.11.1 +的Xcode 7.1
境界最新(距离realm.io下载)
基地SDK:iOS的9.1
部署目标:iOS 9
根据Realm文档,尝试替换变量声明: var变量# 与: 'dynamic var variable'。 – zuziaka