4

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

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

我还复制了以下说明:

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

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

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

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

4

3 回答 3

7

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

  1. 遵循最新的说明。

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

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

  3. 在桥接头中添加:

    #import "Realm/Realm.h"

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

  5. 现在它应该可以工作了。例如,我将它放在我的 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;
    }
)
于 2014-10-03T11:59:21.243 回答
4

我一直在与 Realm 的人交谈,结果发现最新的指令不适用于 Realm <= 0.85 他们改变了构建框架的方式,它不再起作用了。他们说他们将在今天晚些时候发布 0.86,这应该可以解决任何人在使用 Swift 时遇到的问题。与此同时,我有一个测试项目,任何人都可以从中获取最新的框架。https://github.com/smitt0​​4/testRealm

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

于 2014-10-03T16:10:46.023 回答
2

Swift 的安装说明很长而且很复杂,所以我对你和其他几个用户遇到问题并不感到惊讶。

请按照此处的最新安装说明进行操作。

于 2014-10-02T20:51:29.190 回答