如何使用NSJSONSerialization将接收到的数据解码为base64EncodedString并将其转换为Swift中的NSData

时间:2014-11-06 09:25:38

标签: image swift nsjsonserialization

我们可以将图像数据编码为base64EncodedString,并使用NSJSONSerialization从iOS设备发送到另一个设备。

此外,我们能够以base64EncodedString的形式接收图像数据,但我们无法接收 将收到的base64EncodedString转换为接收iOS设备的图像。

我们测试了是否使用以下代码

收到了base64EncodedString
    let gotInfo = notification.userInfo! as Dictionary
    let receivedData:NSData = gotInfo["data" ] as NSData
    let message = NSJSONSerialization.JSONObjectWithData(receivedData, options:NSJSONReadingOptions.AllowFragments, error: nil) as NSDictionary
    let receivedString = message
    let receivedD: AnyObject? = message.objectForKey("Field")
    println ("received2: \(receivedD )")

此时“println”显示图像的base64EncodedString,但是下面的代码给出了“额外参数'base64EncodedString'incall”错误,我们无法找到原因导致此错误。

    let decodedData = NSData(base64EncodedString: receivedD, options:NSDataBase64DecodingOptions())

一旦我们能够将接收的数据转换为NSData,我们希望使用

将其转换为图像
    let decodedimage = UIImage(data: decodedData!)

1 个答案:

答案 0 :(得分:3)

经过几个小时的搜索和尝试,我们得到了答案。 我们换了

      let decodedData = NSData(base64EncodedString: receivedD, options:NSDataBase64DecodingOptions())

      let decodedData = NSData(base64EncodedString: receivedD! as String, options: NSDataBase64DecodingOptions())

这是图片。