【问题标题】:Realm support for Swift 3.0对 Swift 3.0 的领域支持
【发布时间】:2016-06-16 14:10:44
【问题描述】:

我想知道是否已经可以在 Swift 3.0 的 beta 版中使用 Realm。

虽然我在 Realm 存储库中看到了 RealmSwift-swift3.0 目录,但我没有成功正确使用它。我应该如何从源代码安装它?

【问题讨论】:

    标签: ios swift realm swift3


    【解决方案1】:

    您可以将 Realm 与 Swift 3.0 一起使用,但要考虑到当前版本仍然是绝对实验性的。

    您可以从 GitHub 克隆 realm-cocoa 存储库的 ma​​ster 分支

    或者你可以使用迦太基:

    github "realm/realm-cocoa.git" "master"
    

    或者,如果您更喜欢 CocoaPods:

    pod 'RealmSwift', :git => 'https://github.com/realm/realm-cocoa.git', :branch => 'master'
    

    如果您使用 Carthage,请记住您必须手动添加 Realm 和 RealmSwift 框架(忽略 IBAnimatable 框架):

    事实上,我有一个使用 Xcode 8、Swift 3 和 Realm 的项目,它运行良好 :)

    【讨论】:

    • 我真的需要master分支吗?当我使用 Carthage 导入此分支并导入 RealmSwift 时,我收到警告:模块文件是由旧版本的编译器创建的。这个分支已经用 XCode 8 编译了吗?
    • sudo xcode-select -switch /Applications/Xcode-beta.app/Contents/Developer 是我用来将默认命令行工具更改为 Xcode 8 的命令。在使用 carthage update 之前执行此操作并告诉我它是否有效。
    • 是的,它有效!但是,我觉得 Swift 3.0 的问题太多了,所以我认为我需要等待发布。例如,Swift 似乎不允许将array.appendContentsOf(realm.objects(Label)) 更改为array.append(contentsOf: realm.allObjects(ofType: Label))。还有很多其他问题
    • 在上面的示例中,您需要将Label 更改为Label.self 以获取要编译的代码。不幸的是,这是 Swift 3 的变化,Realm 无法控制。
    • 需要使用两个pod来保证使用master:pod 'RealmSwift', :git => 'https://github.com/realm/realm-cocoa.git', :submodules => truepod 'Realm', :git => 'https://github.com/realm/realm-cocoa.git', :submodules => true
    【解决方案2】:

    从 1.1.0 版本开始,Realm 正式兼容 Swift 3.0/Xcode 8.0。见here

    此版本带来了对 Xcode 8、Swift 2.3 和 Swift 的官方支持 3.0。预构建框架现在使用 Xcode 7.3.1 和 Xcode 8.0 构建。

    这是安装文档的摘录:

    如果使用 Xcode 8,请将以下内容粘贴到 Podfile 的底部, 必要时更新 Swift 版本:

    post_install do |installer|
      installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
          config.build_settings['SWIFT_VERSION'] = '2.3' # or '3.0'
        end
      end
    end
    

    【讨论】:

      【解决方案3】:

      Realm 发布新版本1.1.0。如果你使用Cocoapods建议你检查这个PR并安装版本1.1.0.rc.2以避免编译错误Use Legacy Swift Language Version

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多