【问题标题】:Swift libraries and Objective-C libraries together via CocoapodsSwift 库和 Objective-C 库通过 Cocoapods 一起使用
【发布时间】:2015-12-16 10:41:39
【问题描述】:

在我的 Swift 项目中,我必须使用 Parse。 Parse 是一个用 Objective-C 编写的库。所以,我使用 Cocoapods 安装了它。我的Podfile 是这样的:

pod 'Parse'

我做了桥头设置。之后,我按照使用官方文档测试 Parse 的快速入门指南进行操作。用于测试 Parse 的代码行之一如下所示:

let testObject = PFObject(className: "TestObject")
        testObject["foo"] = "bar"
        testObject.saveInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in
            print("Object has been saved.")
        }

一切正常。现在,我还想使用Alamofire,因为它是一个用 Swift 编写的库,文档建议它应该包含在框架中,所以我通过添加以下代码修改了我的 Podfile

pod 'Parse'

use_frameworks!
pod 'Alamofire', '~> 3.0'

然后在执行pod install 之后,我的Parse 代码出现错误

Use of unresolved identifier 'PFObject'
Use of unresolved identifier 'Parse'
Use of unresolved identifier 'PFAnalytics'

那么,我应该如何通过 Cocoapods 在我的项目中安装两个库,一个是用 Swift 编写的,另一个是用 Ojective-C 编写的?

【问题讨论】:

    标签: ios objective-c swift cocoapods


    【解决方案1】:

    你必须把use_frameworks!放在pod 'Parse'之前

    我使用 Almafore 和 Parse 的 Pod:

    platform :ios, '8.0'
    use_frameworks!
    
    pod 'JSQMessagesViewController'
    pod 'Alamofire'
    pod 'Parse'
    

    更新:正如 The Rohan Sanap 所发布的,另一件事是添加

    #import Parse
    

    到使用这个框架的 swift 文件。

    【讨论】:

    • 在发布问题之前尝试过这个。不工作。同样的错误!
    • 我也在同一个项目中使用过 Almafore & Parse。在我的 pod 中,我有 use_frameworks!和平台 ios 8.0。但我认为关键是use_frameworks!。尝试清理您的工作区和/或调用“更新 pod”
    • 或者你的 BuildSetting 中没有 ${inherited} (框架搜索,标题搜索)?
    • 好的!这个答案对我有用。我缺少的一件事是,我没有在.swift 文件中执行import Parse,而是在桥头文件中执行#import <Parse/Parse.h>,这是错误的。
    猜你喜欢
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多