-1
我試圖連接openssl s_server
和iOS客戶端使用TCP SSL(另外,我得到another issue with this,也許這個相關)。現在我想要使用此sample code from github此:不同的有效代碼示例拋出相同的錯誤
let mainbun = NSBundle.mainBundle().pathForResource("pd-test", ofType: "cer")
var key: NSData = NSData.dataWithContentsOfMappedFile(mainbun!)! as NSData
var cert:SecCertificateRef =
SecCertificateCreateWithData(kCFAllocatorDefault, key).takeRetainedValue()
var err:OSStatus = noErr
let secDict = NSDictionary(
objects: [kSecClassCertificate,cert],
forKeys: [kSecClass, kSecValueRef]
)
SecItemAdd(secDict as CFDictionaryRef, nil);
,但得到的錯誤:
ViewController.swift:67:74: 'AnyObject' is not convertible to 'NSData'; did you mean to use 'as!' to force downcast?
ViewController.swift:69:9: Value of type 'SecCertificate?' has no member 'takeRetainedValue'
ViewController.swift:75:23: Value of type 'CFString' does not conform to expected element type 'NSCopying'
爲什麼我不能建立有效的代碼(我看到了許多樣本這個樣子,他們都幾乎拋相同的錯誤,例如this)?我該如何解決它?
如何降級我在Xcode中使用的Swift版本?或者自動解決這個問題?因爲我已經手動修改此代碼,現在它不起作用(或者我[創建了無效的SSL證書](http://stackoverflow.com/questions/39185678/cfnetwork-sslhandshake-failed-9807-with-local-ip ),但一些用戶寫道它是正確的方式) –
「我如何降級我在Xcode中使用的Swift版本」您需要知道代碼被寫入哪個版本的Swift,並使用包含該版本的Xcode版本。所有舊版本的Xcode均可從Apple獲得。 「或者自動解決這個問題」你可能無法自動地解決它,但是如果你知道Swift,那麼你得到的編譯器錯誤是非常清楚和容易修復的。至於使用OpenSSL,Stack Overflow已經充滿了有用的信息。 – matt