传递某些base64字符串时,NSData返回nil

时间:2015-10-13 21:01:49

标签: ios cocoa base64 nsdata

我用

[[NSData alloc] initWithBase64EncodedString:content options:0];

加载通过网络传递的二进制数据,作为JSON对象的键。有时它会起作用,但在其他情况下会失败,就像使用this string一样。

这是由NSData本身在另一端创建的字符串:

[data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];

有什么选择我必须通过,为什么它返回零?字符串有4个长度的多个,没有奇怪的字符,所以我不明白为什么它会失败?

1 个答案:

答案 0 :(得分:3)

我再次阅读文档,特别是这一部分:

  

此方法的默认实现将拒绝非字母表   字符,包括换行符。支持不同   编码并忽略非字母字符,指定选项值   NSDataBase64DecodingIgnoreUnknownCharacters。

它拒绝字符的事实意味着它会拒绝整个字符串,因为显然这些字符,因为当我将NSDataBase64DecodingIgnoreUnknownCharacters添加到初始化程序选项时,它甚至可以使用提到的字符串。