2015-02-06 55 views
0

我今天更新了XCode。我正在使用XCode 6.1.1。更新後,我得到這條線的錯誤。Swift:將字符串解碼爲NSData以在ImageView中顯示圖像

let decodedData = NSData(base64EncodedString: jsonDict["binary"] as NSString, options: NSDataBase64DecodingOptions(rawValue: 0)!) 

錯誤消息是:類型'字符串'不符合協議'NSCopying'。

我想解碼一個字符串到NSData在imageView中顯示圖像。 jsonDict是一個NSDictionary。 這裏有什麼問題?誰能幫忙?

由於

回答

1

問題是jsonDict["binary"]返回一個Optional(其可以是零)。您需要首先解開它:

if let str: String = jsonDict["binary"] { 
    let decodedData = NSData(base64EncodedString: str, options: NSDataBase64DecodingOptions(0)) 
} 
+0

這解決了我的問題。非常感謝你。這次更新似乎有一些改變。我正在使用FireSocket進行Websocket連接。它不再工作。我在FireSocket.swift中有太多的錯誤。你知道XCode 6.1.1的替代庫嗎? – masterWN 2015-02-06 15:47:57

+0

@masterWN不,我不知道FireSocket ...也許試着問另一個問題。 – 2015-02-06 15:50:04

0

這裏的問題是NSDataBase64DecodingOptions(rawValue: 0)!!NSDataBase64DecodingOptionsinit(rawValue:)是非Optional

@availability(iOS, introduced=7.0) 
struct NSDataBase64DecodingOptions : RawOptionSetType { 
    init(_ rawValue: UInt) 
    init(rawValue: UInt) 

所以你不需要!在這裏。爲了更好,您可以在這裏使用nil

NSData(base64EncodedString: jsonDict["binary"] as NSString, options: nil)