How to convert a base64String to String in Swift?

后端 未结 5 1888
一个人的身影
一个人的身影 2020-12-03 03:03

I am receiving a base64String from webservice response in NSData, how to convert that base64String to String in swift?

    //Code
    var jsonResult = NSJSON         


        
5条回答
  •  悲&欢浪女
    2020-12-03 03:32

    The above answers are core, but i had an error like

    fatal error, found nil while unwrapping an optional value
    

    The solution is adding options

    extension String {
    //: ### Base64 encoding a string
        func base64Encoded() -> String? {
            if let data = self.data(using: .utf8) {
                return data.base64EncodedString()
            }
            return nil
        }
    
    //: ### Base64 decoding a string
        func base64Decoded() -> String? {
            if let data = Data(base64Encoded: self, options: .ignoreUnknownCharacters) {
                return String(data: data, encoding: .utf8)
            }
            return nil
        }
    }
    

    and use it safely

    var str = "HelloWorld"
    if let base64Str = str.base64Encoded() {
        print("Base64 encoded string: \"\(base64Str)\"")
        if let trs = base64Str.base64Decoded() {
            print("Base64 decoded string: \"\(trs)\"")
        }
    }
    

提交回复
热议问题