Objective c 使用matt gallagher的NSDataBase64

Objective c 使用matt gallagher的NSDataBase64,objective-c,base64,Objective C,Base64,有人能告诉我为什么我在这个方法中出错: + (NSData *)dataFromBase64String:(NSString *)aString { NSData *data = [aString dataUsingEncoding:NSASCIIStringEncoding]; size_t outputLength; void *outputBuffer = NewBase64Decode([data bytes], [data length], &outputLength); NS

有人能告诉我为什么我在这个方法中出错:

+ (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=newbase64解码[数据字节],[数据长度],&输出长度; 它说调用NewBase64Decode没有匹配的函数。
在我的另外两个项目中,它运行良好,但在我的项目中它显示错误。

如果您查看Gallagher的NSData类别的原始代码,链接位于本页底部:,您将看到该函数包含在同一个.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

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

好的,我设法解决了这个问题,但另一个问题是。。。我应该如何使用它?我对objective c还不熟悉,我很难编写这类代码。。你能告诉我一些战略建议,如何开始吗?@KarolisRaišelis我不明白你的意思。您的问题向您展示了将base64字符串转换为NSData所调用的方法。向您展示如何使用本机base-64 iOS例程。我假设,如果您正在追求base-64,那么您必须拥有一些提供base-64字符串或期望base-64字符串的web服务。我建议您发布一个新问题,概述您正在使用的使用base-64的web服务的细节。这当然超出了我们应该在这里的注释中处理的范围…所以我在我的编译器中发现了问题,那就是不允许我使用base64文件代码。编译源中的编译器选项,因为它被设置为ObjtoC++,但是现在当我把它转换成别的东西时,我在旧代码中会出错。我该怎么办?@KarolisRaišelis您可能想根据文件类型更改编译源代码。这给了我旧代码中的其他错误,我真的不想修复它们。