【问题标题】:realm io returns empty objects (realm 0.93.2)领域 io 返回空对象(领域 0.93.2)
【发布时间】:2015-06-29 07:33:44
【问题描述】:

我刚刚使用 cocoapods 将我的领域从 0.91.1 更新到了 0.93.2。

我现在在查询结果中得到空对象。所以我做了一个简单的应用程序只是为了从头开始测试,但我仍然得到相同的结果。

这是我的测试代码(基本上只有一个文本字段和两个按钮(添加和打印):

import UIKit
import RealmSwift

    class Person: Object {
    var name = "Empty Value"
}

class ViewController: UIViewController {

    @IBOutlet weak var nameTextField: UITextField!

    var realm = Realm()

    override func viewDidLoad() {
        super.viewDidLoad()
        println(realm.path)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    @IBAction func addTapped(sender: UIButton) {
        var person = Person()
        person.name = nameTextField.text

        realm.write {
            self.realm.add(person)
            println("Person added: \(person.name)")
        }
    }

    @IBAction func printListTapped(sender: UIButton) {
        println("\n\nPeople\n")
        for person in realm.objects(Person) {
            println("Person: \(person.name)")
        }
    }
}

数据被保存到数据库中,就像在领域浏览器中看到的那样。 但是 realm.objects(Person) 返回的对象都是空的。

这是添加2项后“printListTapped”函数的输出:

Person: Empty Value<br/>
Person: Empty Value

我真的不确定我在这里缺少什么。提前致谢。

【问题讨论】:

  • 当你在addTapped函数中设置person.name时,打印nameTextField.text来检查你在设置什么。

标签: ios swift realm


【解决方案1】:

这里的问题是您的name 属性声明时没有dynamic,因此它对Realm 完全不可见。如果您将其声明为 dynamic var name = "Empty Value",它应该可以工作。

【讨论】:

  • @segiddins 在objective-c中怎么样?我遇到了同样的问题,这是我的财产:@property (strong, nonatomic) NSString *title;
  • 和查询代码:NSPredicate *_predicate = [NSPredicate predicateWithFormat:@"title = %@", self.searchModel.title];
  • RLMResults *list = [Song objectsWithPredicate:_predicate]; //-&gt; list is empty
猜你喜欢
  • 1970-01-01
  • 2016-09-27
  • 1970-01-01
  • 2011-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多