将Alamofire 3.3.1导入XCode 7.2,Swift 2.1.1

时间:2016-04-08 00:33:18

标签: alamofire

这是我关于SO的第一篇文章,所以这里...... 我试图将Alamofire 3.3.1导入Xcode 7.2,Swift 2.1.1。 我已尝试按照此处所述的方式拉入项目:http://cocoadocs.org/docsets/Alamofire/3.3.0/并且还尝试了可可豆荚方法。这两个都导致项目的Alamofire部分中的161个编译错误。

我也尝试过其他提供类似步骤的SO帖子,但他们都归结为将Almofire Xcode项目文件添加到一个项目并添加嵌入式二进制文件。

例如,

.../Alamofire/Source/Request.swift:487:17: error: expected expression in list of expressions
            protocol: URL.scheme,
            ^
.../Alamofire/Source/Request.swift:486:51: error: expected ',' separator
            port: URL.port?.integerValue ?? 0,
                                              ^
                                              ,
.../Alamofire/Source/Request.swift:487:17: error: expected ')' in expression list
            protocol: URL.scheme,

我确保目标是正确的(都设置为8.1)。我正在使用的应用程序适用于iOS。

我搜索了Alamofire SO的帖子,并且最近没有看到任何东西,所以我假设有一些我错过的简单步骤。

示例教程我跟随成功构建了旧版本的Alamofire - 2.0 - 我是否应该假设新版本的Alamofire不能与Swift 2.1.1一起使用?

非常感谢。

更新:我想出了这一点 - 更仔细地阅读代码,最新版本的Alamofire使用了#selector,它是在Swift 2.2中引入的(用于Xcode 7.3,El Capitain)。所以你有它。例如,以下代码Manager.swift使用#selector

public override func respondsToSelector(selector: Selector) -> Bool {
#if !os(OSX)
    if selector == #selector(NSURLSessionDelegate.URLSessionDidFinishEventsForBackgroundURLSession(_:)) {
        return sessionDidFinishEventsForBackgroundURLSession != nil
    }
#endif

switch selector {
case #selector(NSURLSessionDelegate.URLSession(_:didBecomeInvalidWithError:)):
return sessionDidBecomeInvalidWithError != nil
case #selector(NSURLSessionDelegate.URLSession(_:didReceiveChallenge:completionHandler:)):
return (sessionDidReceiveChallenge != nil  || sessionDidReceiveChallengeWithCompletion != nil)
case #selector(NSURLSessionTaskDelegate.URLSession(_:task:willPerformHTTPRedirection:newRequest:completionHandler:)):
return (taskWillPerformHTTPRedirection != nil || taskWillPerformHTTPRedirectionWithCompletion != nil)
case #selector(NSURLSessionDataDelegate.URLSession(_:dataTask:didReceiveResponse:completionHandler:)):
return (dataTaskDidReceiveResponse != nil || dataTaskDidReceiveResponseWithCompletion != nil)
default:
    return self.dynamicType.instancesRespondToSelector(selector)
}

这绝对不会用Swift 2.1编译

0 个答案:

没有答案