在 Swift 应用程序中安装 Realm

Posted

技术标签:

【中文标题】在 Swift 应用程序中安装 Realm【英文标题】:Install Realm in a Swift App 【发布时间】:2014-10-02 14:34:28 【问题描述】:

我正在尝试将 Realm 添加到我用 swift 编写的应用程序中。我已按照教程进行操作,但似乎无法使其正常工作。最大的问题是,当我尝试导入 Realm 时,我得到 No such module 'Realm' 我不知道还能尝试什么。您可以在下面看到我的努力。

您可以在此处查看说明:http://realm.io/docs/cocoa/0.85.0/#swft

我还复制了以下说明:

由于目前缺乏适当的 Swift 依赖管理基础设施,在您的项目中使用 Realm 需要以下步骤:

    通过打开终端将 Realm 添加为子模块,cd-ing 进入您的***项目目录,然后输入命令 git submodule add git@github.com:realm/realm-cocoa.git 打开 realm-cocoa 文件夹,将 Realm.xcodeproj 拖到 Xcode 项目的文件导航器中。 在 Xcode 中,通过单击蓝色项目图标导航到目标配置窗口,然后选择侧边栏中“目标”部分下的应用程序目标。 在该窗口顶部的标签栏中,打开“构建阶段”面板。 扩展“Target Dependencies”组,并添加 Realm 的 ios 框架。 展开“Link Binary with Libraries”组,添加 Realm 的 iOS 框架以及 libc++.dylib。 单击面板左上角的 + 按钮并选择“新建复制文件阶段”。将这个新阶段重命名为“Copy Frameworks”,将“Destination”设置为“Frameworks”,然后添加 Realm.framework。 将位于 realm-cocoa/Realm/Swift/RLMSupport.swift 的文件拖到 Xcode 项目的文件导航器中,取消选中“Copy items if needed”复选框。

下面是我的项目中的样子:

【问题讨论】:

我们正在努力简化我们的安装说明。一旦有新的说明可用,我们将在几个小时内发布此问题的答案。 【参考方案1】:

我不确定为什么这不起作用,但这里有一个解决方法:

    遵循最新的说明。

    创建一个桥接头,例如通过

    为您的 xcode 项目添加一个新的 Objective-C 类。 同意创建桥接头 删除 Objective-C 类

    在桥接头中添加:

    #import "Realm/Realm.h"

    从您的代码中删除任何 Import Realm 语句,包括从 RLMSupport.swift 中

    现在应该可以了。例如,我将它放在我的 ViewController.swift 中进行测试

    import UIKit
    
    class Person: RLMObject 
        dynamic var name = ""
        dynamic var birthdate = NSDate(timeIntervalSince1970: 1)
    
    
    class ViewController: UIViewController 
        override func viewDidLoad() 
            super.viewDidLoad()
    
            let author = Person()
            author.name = "David Foster Wallace"
    
            // Get the default Realm
            let realm = RLMRealm.defaultRealm()
    
            // Add to the Realm inside a transaction
            realm.beginWriteTransaction()
            realm.addObject(author)
            realm.commitWriteTransaction()
    
            // Print all Persons
            println(Person.allObjects())
        
    
    

哪些打印:

RLMArray <0x7a243760> (
    [0] Person 
        name = David Foster Wallace;
        birthdate = 1970-01-01 00:00:01 +0000;
    
)

【讨论】:

【参考方案2】:

我一直在与 Realm 的人交谈,结果发现最新的指令不适用于 Realm https://github.com/smitt04/testRealm

0.86 版现已发布,这不再是问题。

【讨论】:

【参考方案3】:

Swift 安装说明冗长而复杂,所以我并不感到惊讶,其他几个用户也遇到了问题。

请按照最新的安装说明here。

【讨论】:

所以我尝试了新的安装说明。我遇到了2个问题。 1.你下载的zip压缩包里面没有swift文件夹,只有git clone里面。 2. 所以我尝试了 git clone 并将文件Swift/RLMSupport.swift 拖到我的项目中,这就是问题所在。在该文件的顶部它说,No such module 'Realm' 尝试导入时。所以我仍然在使用 Realm 时遇到问题。我似乎能够在没有 swift 文件的情况下进行编译,但没有尝试使用它。但我无法编译它。 我继续收到同样的错误。目前这些指令在 XCode 6/Swift 中不能正常工作。这几乎不是一个确定的答案,但我建议现在坚持使用 obj-c for Realm。 (我关注了今天上传的youtube视频)i.imgur.com/M37Q7Th.png Realm 0.86.0 发布后,说明将生效,这将在接下来的几个小时内完成。 @jpsim,它仍然无法通过 cocopods 工作。我遇到了与0.90.1 相同的错误 @RameshVel 请在 GitHub 上提交问题,如果此处发布的说明不适合您,我们可以帮助您更好地解决问题:realm.io/docs/cocoa#installation(单击 CocoaPods 选项卡)

以上是关于在 Swift 应用程序中安装 Realm的主要内容,如果未能解决你的问题,请参考以下文章

Google 登录 CocoaPods 在 Swift 中安装?

我应该如何在 swift 3.0 中安装 Dropbox?

如何在反应原生应用程序中安装 facebook sdk?

我可以在 ubuntu 中安装 xcode 吗?

在IOS中安装firebase cocoapods时的未知参数-swift

在 iOS 7 上使用 Realm 和 Swift