在 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 中安装?