好的,经过一些尝试和错误之后,我设法消除了其他一些错误,尽管我仍然有一个问题,一个命令返回上述错误。这一行是:
PCharacter.PCharacters.insert(PCharacter.charName <- "\(newCharName)",
PCharacter.maxHP <- "\(newCharHP)", PCharacter.maxMP <- "\(newCharMP)")据我所知,这遵循insert命令的格式,除了Github上的示例使用硬编码的值,而不是变量,尽管我需要变量,因为用户输入了这些变量。
为了提供更多的背景: PCharacter是AppDelegate中的一个结构,而这是一个包含在Action链接到ViewController中的一个按钮中的命令。
下面是PCharacter结构:
struct PCharacter {
static let PCharacters = db["PCharacters"]
static let id = Expression<Int64>("id")
static let charName = Expression<String>("charName")
static let currentHP = Expression<Int64>("currentHP")
static let maxHP = Expression<Int64>("maxHP")
static let currentMP = Expression<Int64>("currentMP")
static let maxMP = Expression<Int64>("maxMP")
static let currentExp = Expression<Int64>("currentExp")
static let nextExp = Expression<Int64>("nextExp")
static let charWeaponID = Expression<Int64>("charWeaponID")
static func createTable() {
db.create(table: PCharacters) { t in
t.column(id, primaryKey: .Autoincrement)
t.column(charName, unique: true)
t.column(currentHP)
t.column(maxHP)
t.column(currentMP)
t.column(maxMP)
t.column(currentExp)
t.column(nextExp)
t.foreignKey(charWeaponID, references: Weapon.Weapons[id], delete: .SetNull)
}
}
}谢谢你的帮助!
发布于 2015-08-10 11:36:01
有一个贡献准则的一节,它涵盖了这个精确的错误。如果将insert拆分成多行,将在以下两行中筛选出正确的错误消息:
PCharacter.maxHP <- "\(newCharHP)"
PCharacter.maxMP <- "\(newCharMP)"二进制运算符'<-‘不能应用于’表达式‘和’字符串‘类型的操作数
您的maxHP和maxMP列是Int64,但是您将它们设置为string值。确保newCharHP和newCharMP都是Int64。
https://stackoverflow.com/questions/31913423
复制相似问题