如何快速将base64转换为NSDATA

问题描述:

我正在研究一个iOS项目.它将音频以base64字符串的形式存储在Web服务器上.当我请求服务器获取所有音频的base64字符串并尝试在NSData中进行转换时,我正在获取nil.

I am working on an iOS project. It stores audio on web server in the form of base64 string. When I request server to get base64 Strings for all audios and tried convert it in NSData I am getting nil.

do
{
   var audioData: NSData! = NSData(base64EncodedString: audioBase64String, options: NSDataBase64DecodingOptions(rawValue:0))
   if audioData != nil
   {
      let sound = try AVAudioPlayer(data: audioData)
      sound.play()
   }
   else
   {
        print("Data Not Exist")
   }
}
catch
{
}

在Android上,相同的base64字符串被转换为字节数组并正在播放,但是在iOS audioBase64String中,返回nil表示NSData.

On Android same base64 string is converted into byte array and is playing, but in iOS audioBase64String return nil for NSData.

这有效:

快速3和4:

var audioData = Data(base64Encoded: recording_base64, options: .ignoreUnknownCharacters)

迅速2:

var audioData = NSData(base64EncodedString: recording_base64, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)