【问题标题】:With Obj-C Realm, is there any way to use NSNumber<RLMInt> from Swift?使用 Obj-C Realm,有什么方法可以从 Swift 中使用 NSNumber<RLMInt> 吗?
【发布时间】:2016-05-02 18:00:47
【问题描述】:

我们目前正在使用带有 Swift 的 Objc Realm 0.96(因为我们的应用程序也支持 iOS7),并且正在寻找一种方法来将可空的 Int 作为 RLMObject 子类的属性之一。根据官方文档,NSNumber&lt;RLMInt&gt; 应该用于此目的,但不幸的是,Swift 端似乎不支持使用特定类型标记NSNumber

有人知道如何从 Swift 端支持可为空的 Int 或 Bool 吗?

【问题讨论】:

    标签: ios objective-c swift realm


    【解决方案1】:

    这是 Swift 的一个限制。目前唯一的方法是在 Objective-C 中定义模型或将类型声明为NSNumber 并设置默认值,这允许 Swift 在运行时确定装箱类型。此默认值必须不同于nil

    【讨论】:

    • 我明白了...我会考虑使用默认号码。谢谢 vm 的回答!
    • marius 我对目标 c 中的这个错误有疑问
    • @user3182143:我不清楚您指的是什么错误。由于这个问题是关于 Swift 的,你能打开一个新问题并在那里详细说明你的问题吗?
    • @user3182143:你能打开一个新问题,用异常消息详细说明你的问题吗?
    【解决方案2】:

    使用当前的 Swift 语言功能,我们现在可以通过 Realm-Objc 将 nil 作为 Swift 中可选 Int 或 Bool 的默认值

    可选布尔: dynamic var optionalBool: (NSNumber &amp; RLMBool)?

    可选整数: dynamic var optionalInt: (NSNumber &amp; RLMInt)?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 2021-11-26
      • 1970-01-01
      相关资源
      最近更新 更多