创建Realm对象类时出错

时间:2018-06-23 20:11:48

标签: ios swift realm

我试图用Swift编写一个简单的应用程序,以Realm为后盾。当我在类中编写var时,会不断出现诸如“ Property cannot be implicitly @objc because its type cannot be represented in Objective-C”之类的错误。有时会出现这些错误(似乎涉及到我未使用的Objective-C),有时却没有出现-请参阅下面的屏幕截图。

我是Swift的新手,但是我认为我已经足够了解入门了。具体来说:

1)我应该在类声明之前添加“ @objc”吗?

2)我应该在动态var声明之前添加“ @objc”吗?

3)似乎必须初始化Float变量,但对于String不是这样吗?

4)为什么编译器会抱怨一行声明而不是下一句相同的语法?

请务必感谢一些指导或指向创建Realm对象类的特定说明的指针!

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为错误来自调用@objc而不是@objcMembers。 尝试更改

@objc class Transaction: Object

@objcMembers class Transaction: Object

并删除动态变量前面的所有@objc。因此,您的最终代码应如下所示:

import Foundation
import RealmSwift

@objcMembers class Transaction: Object {
    dynamic var picPath: String?
    dynamic var transAmount: Float = 0.0
}

@objcMembers class Transaction: Object {
    dynamic var currentBalance: Float = 0.0
    dynamic var highWaterBalance: Float = 0.0
    dynamic var acctName: String?
}

我们的同胞Paul Hudson has described this attribute on his site hackingwithswift