【发布时间】:2017-01-04 02:10:26
【问题描述】:
我在使用 Realm Swift 时遇到问题。我有一个对象,它假设存储有关用户创建的角色的信息。但是某些属性没有保存。如果我只用一个字母切换对象的名称,它就会保存并正确读取。第一个示例拒绝保存除race 属性的默认值之外的任何内容,但第二个示例将任何值保存到racea 属性没有问题。这是什么原因造成的?
示例 1
class Character: Object {
//MARK: Properties
dynamic var id: Int = 1
dynamic var name: String = "John Appleseed"
dynamic var level: Int = 1
dynamic var exp: Int = 0
dynamic var race: Int = 0
dynamic var career: Int = 0
dynamic var currentHealth: Int = 100
dynamic var inventory: Inventory? = Inventory()
//MARK: Realm
override static func primaryKey() -> String? {
return "id"
}
}
示例 2
class Character: Object {
//MARK: Properties
dynamic var id: Int = 1
dynamic var name: String = "John Appleseed"
dynamic var level: Int = 1
dynamic var exp: Int = 0
dynamic var racea: Int = 0
dynamic var career: Int = 0
dynamic var currentHealth: Int = 100
dynamic var inventory: Inventory? = Inventory()
//MARK: Realm
override static func primaryKey() -> String? {
return "id"
}
}
扩展
extension Character {
func getRace() -> String {
return Fitventure.species[race]
}
}
【问题讨论】:
-
可能问题出在您代码的其他地方,这看起来不错
-
@Tj3n 我已经更新了帖子。似乎是
getRace()函数导致了这个问题。当我有一个与变量不同名的函数时,为什么领域会这样做?