以下代码会产生此构建警告:
NSData 可能不会响应“dataWithBase64EncodedString:”
编码:
NSString * message = @"string string string";
NSData *data= [NSData dataWithBase64EncodedString:(NSString *)message];
如何解决此问题以删除此警告?
以下代码会产生此构建警告:
NSData 可能不会响应“dataWithBase64EncodedString:”
编码:
NSString * message = @"string string string";
NSData *data= [NSData dataWithBase64EncodedString:(NSString *)message];
如何解决此问题以删除此警告?
NSData 没有dataWithBase64EncodedString:
方法。如果你在这个方法中使用了一些自定义的 NSData 类别,你应该在它定义的地方导入标题。
编辑: 因此,如果您使用此链接中的代码,那么您只需创建自己的 .h 和 .m 文件并将该代码复制到其中:
// MBBase64.h
@interface NSData (MBBase64)
+ (id)dataWithBase64EncodedString:(NSString *)string; // Padding '=' characters are optional. Whitespace is ignored.
- (NSString *)base64Encoding;
@end
//MBBase64.m
static const char encodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
@implementation NSData (MBBase64)
...
@end
MBBase64.h
然后在任何你想使用+dataWithBase64EncodedString:
方法的地方导入标题。
只是为了澄清以前的答案:
在 NSFoundation API 中,NSData 没有dataWithBase64EncodedString:
方法。如果您在其中复制代码,则该代码通过向其添加包含该方法的类别来扩展 NSData。
您可以使用类别将任意方法添加到任何类。如果有人在他们的示例代码中使用了一个类别,那么您不能使用该代码,除非您还获得了定义该类别的头文件和实现文件。如果原作者没有提供这些内容,那么您就不走运了。
Base64 编码不是 API 提供的字符串编码之一,因此您可能必须自己实现该编码,或者由拥有该编码的人找到一些代码。