Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 初始化时领域对象子类的实例为null_Ios_Swift_Realm - Fatal编程技术网

Ios 初始化时领域对象子类的实例为null

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 =

我是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 = 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
    …
}