【问题标题】:Errors when creating Realm object classes创建领域对象类时出错
【发布时间】:2018-06-23 20:11:48
【问题描述】:

我正在尝试用 Swift 编写一个简单的应用程序,支持 Realm。当我在课堂上写vars 时,我不断收到诸如“Property cannot be implicitly @objc because its type cannot be represented in Objective-C”之类的错误。有时会出现这些错误(似乎涉及我没有使用的 Objective-C),有时它们不会出现 - 请参阅下面的屏幕截图。

我是 Swift 公认的新手,但我认为我理解的足够多,可以开始了。具体来说:

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

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

3) 似乎必须初始化 Float var,但对于 String 则不然?

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

肯定会感谢一些指导,或指向创建领域对象类的具体说明的指针!

【问题讨论】:

    标签: ios swift realm


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 2015-09-20
      相关资源
      最近更新 更多