以下是我用于在领域数据库中创建对象的两个领域模型。
class RosterViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{
var realm : Realm!
dynamic var users = Users()
var userResult : Results<Users>!
dynamic var messagedata = Messages()
var messageResult : Results<Messages>!
override func viewDidLoad() {
super.viewDidLoad()
realm = try! Realm()
notificationToken = realm.observe{ notification, realm in
self.contactsTableView.reloadData()
}
}
func xmppStream(_ sender: XMPPStream, didReceive message: XMPPMessage) {
.......
// parse xml and set object values here
userResult = realm.objects(Users.self)
messageResult = realm.objects(Messages.self)
try! realm.write {
users.userMessages.append(messagedata)
realm.add(users, update: true)
realm.add(messagedata, update: true)
}
}
}
}
这是我的RosterViewController,我在tableViewCell中显示'phoneNumber'和最新的'messageBody'。我使用 XMPP Framework 来接收消息,使用 SwiftyXMLParser 来解析xml消息。
array
我想将消息动态附加到相应邮件发件人的用户列表中。我无法这样做。我正在实时接收消息,因此它们应该附加到列表中,从而在tableView上反映出相同的消息。 第一条消息正确显示,但当同一用户立即发送另一条消息时,我收到错误消息:
RLMException',原因:'尝试修改写事务之外的对象 - 首先在RLMRealm实例上调用beginWriteTransaction
我也尝试了很多,但无法获得任何修复或解决方法。请帮我解决这个问题,刚开始用境界。谢谢!