我用Xcode6 Beta 2写了一个Swift应用程序,使用CFNetwork类进行一些网络操作,例如
该应用程序在iOS 8上运行良好,但是当我尝试在运行iOS 7的设备或模拟器上运行它时,启动应用程序时会出现以下错误:
我已经进行了一些研究,发现它是一个链接问题。尽管如此,我知道我使用的类在iOS 7中已经可用。
我还尝试将CFNetwork.framework添加到项目设置中的框架,并将其设置为可选项,但这只会导致应用程序在运行时崩溃。
对我来说令人困惑的是:我编写了一个测试应用程序,只需将主应用程序中使用的代码粘贴进去,就可以正常工作。因此,代码可能不是问题所在。
从模拟器/设备中删除应用程序,对项目进行清理,以及删除Xcode的派生数据都没有解决问题。
更新:
以下是导致崩溃的代码:
但这只是一个例子。任何使用CFNetwork类的操作都会导致应用程序在启动时崩溃。
NSURLRequest
和NSHTTPURLResponse
。该应用程序在iOS 8上运行良好,但是当我尝试在运行iOS 7的设备或模拟器上运行它时,启动应用程序时会出现以下错误:
dyld: Symbol not found: _OBJC_CLASS_$_NSHTTPURLResponse
Referenced from: /Users/patrick/Library/Developer/CoreSimulator/Devices/B0A61F43-A67C-4803-8F5D-77C3972107BE/data/Applications/E0C7C89F-9EEE-4893-BE5B-FCC224F2855D/CheckYourWeather.app/CheckYourWeather
Expected in: /Applications/Xcode6-Beta2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/System/Library/Frameworks/CFNetwork.framework/CFNetwork
in /Users/patrick/Library/Developer/CoreSimulator/Devices/B0A61F43-A67C-4803-8F5D-77C3972107BE/data/Applications/E0C7C89F-9EEE-4893-BE5B-FCC224F2855D/CheckYourWeather.app/CheckYourWeather
我已经进行了一些研究,发现它是一个链接问题。尽管如此,我知道我使用的类在iOS 7中已经可用。
我还尝试将CFNetwork.framework添加到项目设置中的框架,并将其设置为可选项,但这只会导致应用程序在运行时崩溃。
对我来说令人困惑的是:我编写了一个测试应用程序,只需将主应用程序中使用的代码粘贴进去,就可以正常工作。因此,代码可能不是问题所在。
从模拟器/设备中删除应用程序,对项目进行清理,以及删除Xcode的派生数据都没有解决问题。
更新:
以下是导致崩溃的代码:
extension NSURLRequest {
class func plainPostRequest(url: NSURL, httpBody: String) -> NSURLRequest {
let urlRequest = NSMutableURLRequest(URL: url)
urlRequest.HTTPMethod = "POST"
urlRequest.HTTPBody = httpBody.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
urlRequest.setValue("text/plain", forHTTPHeaderField: "Content-Type")
return urlRequest
}
}
但这只是一个例子。任何使用CFNetwork类的操作都会导致应用程序在启动时崩溃。