使用通知中心在Realm Swift 3中保存UIButton更改状态

时间:2017-03-10 19:17:14

标签: ios notifications swift3 uibutton realm

我有一个按钮,其发件人会在发生后观察通知并更改其标题。在开火之前,按钮标题是“A”。点火后,按钮标题为“B”。

我正在尝试在Realm中保存更改后的状态,以便用户可以看到该按钮已被更改。

发布(触发)通知发生在添加UIView的另一个按钮操作中。该子视图拥有帖子通知:

 NotificationCenter.default.post(name: fireNotification, object: nil)

当帖子被触发时,另一个add(观察者)通知会对此事件起作用:

// MARK: - Observe Notification

    NotificationCenter.default.addObserver(forName: fireNotification, object: nil, queue: nil) { notification in
        print("Notification Observed")

        sender.setTitle("B", for: .normal)
        sender.setTitleColor(.red, for: .normal)
        sender.isEnabled = false
    } 

这显然会将按钮状态更改为B.如何编写并将其保存到我的领域?我试过了:

// MARK: - Observe Notification

    NotificationCenter.default.addObserver(forName: fireNotification, object: nil, queue: nil) { notification in
    print("Notification Observed")

      let realm = try! Realm()
      try! realm.write {
        sender.setTitle("B", for: .normal)
        sender.setTitleColor(.red, for: .normal)
        sender.isEnabled = false
          } 
      } 

我应该在对象参数中添加一些内容吗?

1 个答案:

答案 0 :(得分:0)

为了能够在Realm中保存数据,您需要创建自己的RealmObject子类并定义它的属性。您无法保存非RealmObjects的状态。

请查看文档以了解有关Realm的更多信息:https://realm.io/docs/swift/latest/