我试图用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对象类的特定说明的指针!
答案 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。