我收到此错误:
“Realm Swift:实例成员'Int'不能用于'Comment'”
类型
我发现this answer建议使用关键字 static 。但是,正如我所编写的函数的要点是在创建对象之后访问主键,使用静态变量将无效。
有关如何改善此事的任何建议吗?
import Foundation
import RealmSwift
class Comment: Object {
dynamic var id : Int = -1
override class func primaryKey() -> String? {
return String(id)
}
}
答案 0 :(得分:0)
引用" @Octaviano Putra"在评论中这对我有用:
primaryKey函数应该返回主键的变量名 变量,而不是价值,所以你应该返回" id"而是参考: realm.io/docs/swift/latest/#primary-keys
答案 1 :(得分:0)
我将添加此答案来解释告诉错误消息[强调我的]:
" Realm Swift:实例成员'
Int
'不能使用类型'Comment
'"
类型方法无法访问该类型的实例成员,而无法显式访问类型本身的实例(它不是,在上面的例子中。)
来自the Language Guide - Methods:
类型方法
如上所述,实例方法是调用的方法 特定类型的实例。您还可以定义方法 会在类型本身上调用。这些方法称为类型方法。您可以通过编写
static
来指明类型方法 方法的func
关键字之前的关键字。类也可以使用class
关键字,允许子类覆盖超类 该方法的实施。
class Foo {
// this is an _instance_ property, accessible to
// _instances_ of the _type_ 'Foo'
let instanceProperty: Int
// this is a _type method_, owned by the _type_ 'Foo'
class func typeMethod() -> String {
// this method knows nothing about the _content_ of
// particular instances of of the type itself (unless
// we explictly provide this information to the method)
return "foo"
}
}