Realm Swift:实例成员不能用于

时间:2017-01-19 08:02:33

标签: ios swift realm

我收到此错误:

  

“Realm Swift:实例成员'Int'不能用于'Comment'”

类型

enter image description here

我发现this answer建议使用关键字 static 。但是,正如我所编写的函数的要点是在创建对象之后访问主键,使用静态变量将无效。

有关如何改善此事的任何建议吗?

import Foundation
import RealmSwift

class Comment: Object {
    dynamic var id : Int = -1 

    override class func primaryKey() -> String? {
        return String(id)
    }
}

2 个答案:

答案 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"
    }
}