さて、いくつかの試行錯誤の後、他のエラーのいくつかを取り除くことができましたが、上記のエラーを返す 1 つのコマンドにはまだ問題があります。行は次のとおりです。
PCharacter.PCharacters.insert(PCharacter.charName <- "\(newCharName)",
PCharacter.maxHP <- "\(newCharHP)", PCharacter.maxMP <- "\(newCharMP)")
私が知る限り、これは挿入コマンドの形式に従いますが、Github の例では変数ではなくハードコードされた値を使用していますが、ユーザーが変数を入力するので変数が必要です。
もう少し背景を説明すると、PCharacter は AppDelegate の構造体ですが、これは 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)
}
}
}
助けてくれてありがとう!