微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Swift迭代Realm中的结果

我试图在 Swift 2中从Realm查询迭代结果.存储了两个PersonClass对象.

查询的结果var有效并包含两个PersonClass对象,但在迭代结果时,name属性为空字符串.

class PersonClass: Object {
    var name = ""
}

let realm = try! Realm()

@IBAction func button0Action(sender: AnyObject) {
  let results = realm.objects(PersonClass)

  print(results) //prints two PersonClass object with the name property populated

  for person in results {  
      let name = person.name
      print(name) //prints and empty string   
  }
}

解决方法

问题是您已从模型类中的属性声明中省略了动态修饰符.动态修饰符是必要的,以确保Realm有机会拦截属性的访问,使Realm有机会从磁盘上的文件读取/写入数据.省略此修饰符会导致Swift编译器直接访问实例变量,从而将Realm从循环中删除.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐