【问题标题】:Swift and Realm: Invalid use of '()' to call a value of non-function type 'module<Realm>'Swift 和 Realm:无效使用 '()' 调用非函数类型 'module<Realm>' 的值
【发布时间】:2016-09-01 15:13:46
【问题描述】:

我实际上是从 Swift 的 Realm 官方文档中复制和粘贴代码 - 但它无法编译:

https://realm.io/docs/swift/latest/#adding-objects

我正在使用 Realm 1.0.2

文档确实与自身相冲突 - 具有不同的领域声明:

let realm = RLMRealm.defaultRealm()
let realm = Realm()
let realm = try! Realm()

Realm 发生了什么?

Realm 和 RLMRealm 有什么区别? 上面的第一行可以正常编译 - 但接下来的两行不会。

【问题讨论】:

  • 你添加import Realm了吗?
  • 我有 - 这不是问题。尝试获取此代码,看看它是否为您编译。

标签: ios swift realm


【解决方案1】:

我实际上是从 official Realm documentation for Swift 复制和粘贴代码 - 它无法编译:

屏幕截图中显示的代码 sn-p 缺少调用 Realm 类型的初始化程序所需的括号。我浏览了您链接到的文档页面,从我可以看到 Realm 初始化程序的所有用法正确地有它们的括号。

文档确实与自身相冲突 - 具有不同的领域声明:

我不确定您指的是哪个文档。我在Realm Swift documentation 中看到的唯一形式是let realm = try! Realm(),这是与Realm Swift 一起使用的正确形式。

RealmRLMRealm 有什么区别?

Realm 框架提供了一个 Objective-C API,RLMRealm 类代表 Realm 文件。 RealmSwift 框架提供 Swift API,Realm 类代表 Realm 文件。

上面的第一行可以正常编译 - 但接下来的两行不会。

这表明您正在使用来自 Swift (import Realm) 的 Realm Objective-C 框架,而不是 Realm Swift (import RealmSwift)。

【讨论】:

  • 谢谢!如果你在谷歌上搜索“realm swift tutorial”,你会发现来自 realm.io 的第一篇文章已经完全过时了,并且让我走上了错误的道路。请删除或以其他方式更新这篇文章 Realm people。
  • 我已经向我们的团队提出了更新旧博客帖子的问题。在我们能够做到这一点之前,我们会在此类帖子中添加日期,以提供有关此类帖子的新近度的一些想法。如果我的回答解决了您的问题,Stack Overflow 礼仪表明您应该将其标记为已接受。
  • 我会完全删除博客文章 - 它没有什么用处 - 如果我没有看到它,这个问题将永远不会发布。
【解决方案2】:

别忘了:

import RealmSwift

【讨论】:

    猜你喜欢
    • 2016-09-16
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    相关资源
    最近更新 更多