我创建了一个全新的Swift项目,然后将以下podfile
添加到其中
platform :ios, '8.0'
use_frameworks!
target 'LifeStream' do
pod 'SSKeychain'
pod 'LiveSDK'
pod 'Alamofire', '~> 1.2'
end
target 'LifeStreamTests' do
pod 'SSKeychain'
pod 'LiveSDK'
pod 'Alamofire', '~> 1.2'
end
然后我运行了pod Install,它创建了我的工作区。完成后,我编译了项目,但在AlamoFire框架中收到了以下编译器错误。
不能使用类型为“CFString!”的索引下标“[String:AnyObject]”类型的值
不能使用类型为“CFString!”的索引下标“[String:AnyObject]”类型的值
不能使用类型为“CFString!”的索引下标“[String:AnyObject]”类型的值
对于Manager.swift
if let info = NSBundle.mainBundle().infoDictionary {
let executable: AnyObject = info[kCFBundleExecutableKey] ?? "Unknown"
let bundle: AnyObject = info[kCFBundleIdentifierKey] ?? "Unknown"
let version: AnyObject = info[kCFBundleVersionKey] ?? "Unknown"
我还在同一个文件中收到了其他几个编译器错误,例如
可选类型'NSURLSessionConfiguration?'的值没有打开;你的意思是用'!'还是'?'?
self.session = NSURLSession(configuration: configuration, delegate: delegate, delegateQueue: nil)
在呼叫
中缺少参数#2的参数
completionHandler(sessionDidReceiveChallenge!(session, challenge))
Request.swift中还有一些其他编译器错误。我的问题是,这些是Swift 2.0中所做的更改的结果吗?如果是这样,Alamofire何时会修复和发布这些问题是否存在ETA?
答案 0 :(得分:2)
我知道它已经老了,但你可以这样做:
String(kCFBundleVersionKey)
答案 1 :(得分:1)
错误消息告诉您正在使用不能用于下标的类型。 kCFBundleExecutableKey
和朋友是CFStringRef
文字。您应该使用
NSString
对象
kCFBundleExecutableKey as NSString
等
或者您可以简单地使用它们定义为的字符串值:
"CFBundleExecutable"
"CFBundleIdentifier"
"CFBundleVersion"
答案 2 :(得分:1)
答案是在github上使用新的rollapply(RET,1:nrow(RET), mean.geometric)
分支。我调整了podfile
Alamofire Swift-2
并重新安装了pod。一旦完成,我就能够毫无问题地构建项目。
答案 3 :(得分:0)
您应该将Almofire更新为Swift-2
您可以使用以下方法修复这些行:
let executable = String(info[kCFBundleExecutableKey as String]) ?? "Unknown"
let bundle = String(info[kCFBundleIdentifierKey as String]) ?? "Unknown"
let version = String(info[kCFBundleVersionKey as String]) ?? "Unknown"
let os: AnyObject = NSProcessInfo.processInfo().operatingSystemVersionString ?? "Unknown"
但我建议您更新库Almofire