使用matt gallagher的NSDataBase64

时间:2013-12-11 14:19:42

标签: objective-c base64

有人可以告诉我为什么我在这种方法中出错:

+ (NSData *)dataFromBase64String:(NSString *)aString
{
NSData *data = [aString dataUsingEncoding:NSASCIIStringEncoding];
size_t outputLength;
void *outputBuffer = NewBase64Decode([data bytes], [data length], &outputLength);
NSData *result = [NSData dataWithBytes:outputBuffer length:outputLength];
free(outputBuffer);
return result;
}

错误在void * outputBuffer = NewBase64Decode([data bytes],[data length],& outputLength); 它没有用于调用“NewBase64Decode”的匹配函数。 在其他两个项目上,我有它工作正常,但在我的项目中它显示错误。

1 个答案:

答案 0 :(得分:0)

如果您查看Gallagher的NSData类别的原始代码(该链接位于此页面的底部:http://www.cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html),您会看到该功能包含在同一.m中文件,所以我不知道为什么它没有找到你的情况下的功能。也许您剪切并粘贴代码,而不是仅包含原始的NSData+Base64.mNSData+Base64.h文件。您可能想要重新检索源代码。


另外,iOS 7和Mac OS X v10.9引入了原生base-64方法,无需第三方base-64例程:

– initWithBase64EncodedData:options:
– initWithBase64EncodedString:options:
– base64EncodedDataWithOptions:
– base64EncodedStringWithOptions:

他们还公开了以下两种以前私有的方法,以便与早期的iOS和Mac OS X版本向后兼容:

– initWithBase64Encoding: 
– base64Encoding

请参阅NSData reference的“创建数据对象”和“Base-64编码”部分。