我基本上想在执行操作时增加一个值。因此,我要做的是第一次执行操作时,我将1的值分配给Realm中的新属性,然后将其添加到realm数据库中。
第二次执行该操作时,将从属性中的所有值中获取最大值,并将该最大值加1,然后将其添加到数据库中。
但是发生的是第一次,当我到达第client.on("message", (message) => {
if (message.channel.type === "dm") {
if (message.author.id === client.user.id) return;
let yumz = new Discord.RichEmbed()
.setTimestamp()
.setTitle("Direct Message To The Bot")
.addField(Sent By:, <@${message.author.id}>)
.setColor("RANDOM")
.setThumbnail(message.author.displayAvatarURL)
.addField(Message:, \n\n\``${message.content}```)
.setFooter(DM Bot Messages | DM Logs`)
client.users.get("404968772969955329").send(yumz)
}
});
行时,发生了崩溃,提示select Students.B#, Students.FIRST_NAME, Students.LAST_NAME, Students.BDATE
from Students INNER JOIN TAs ON Students.B# = TAs.B#
where Students.dept='CS' -- or computer science depending on the value.
这是代码。
realm.add(chatMsgObj)
答案 0 :(得分:0)
只能通过写事务在Realm中添加,删除或创建对象-首先在RLMRealm实例上调用beginWriteTransaction。
您需要打开领域然后编写。
阅读有关领域here的更多信息,此代码现在应该对您有用。
try! realm.write {
realm.add(chatMsgObj)
}
EDIT :从下面的注释中您遇到另一个问题:正在编写同一个主键,请窥视领域again的文档,这可能是一个配置问题,
您可以尝试从正在其上测试的(模拟器/设备)中删除该应用程序,然后重新运行该应用程序。
然后你穿过十字架
尝试使用现有对象创建类型为“ ChatMessage”的对象 主键值“ 0”
因此,对于这次新的崩溃,您有2个选择。
1-更改要写入的新对象的PrimaryKey
。
2-获取该PrimaryKey
的对象并进行修改。
现在,对于获取和修改部分,请看一下这段代码,您应该有所了解。
let realm = try! Realm()
let myChatObject = realm.objects(Dog.self).filter("youPrimaryKey == 1").first
try! realm.write {
myChatObject!.something = newValue
}