有人可以告诉我为什么我在这种方法中出错:
+ (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”的匹配函数。 在其他两个项目上,我有它工作正常,但在我的项目中它显示错误。
答案 0 :(得分:0)
如果您查看Gallagher的NSData
类别的原始代码(该链接位于此页面的底部:http://www.cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html),您会看到该功能包含在同一.m
中文件,所以我不知道为什么它没有找到你的情况下的功能。也许您剪切并粘贴代码,而不是仅包含原始的NSData+Base64.m
和NSData+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编码”部分。