我的下一个代码有问题:
NSDictionary * imagen = [[NSDictionary alloc] initWithDictionary:[envio resultValue]];
NSString *imagenS = [imagen valueForKey:@"/Result"];
ClaseMaestra *b1 = [[ClaseMaestra alloc]init];
NSData *imagenDecode = [[NSData alloc] initWithData:[b1 base64DataFromString:imagenS]];
NSLog(@"Decode Image:");
NSLog(@"%@", imagenDecode);
//SAVE IMAGE
NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *docDirectory = [sysPaths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@david.png",docDirectory];
[imagenDecode writeToFile:filePath atomically:YES];
块引用
[envio resultValue] - >在Base 64编码中返回带有一个图像的NSDictionary。
我想要解码并保存此图像,但在我的控制台中,我已显示此消息:
2011-08-23 19:19:39.750 WSStub[38501:a0f] *************************
2011-08-23 19:19:39.752 WSStub[38501:a0f] SendImage
2011-08-23 19:19:39.752 WSStub[38501:a0f] *************************
2011-08-23 19:19:39.759 WSStub[38501:a0f] -[ClaseMaestra base64DataFromString:]: unrecognized selector sent to instance 0xd00ad0
Program received signal: “EXC_BAD_ACCESS”.
ClaseMaestra界面是:
#import <Foundation/Foundation.h>
@class NSString;
@interface ClaseMaestra : NSObject
+ (NSMutableData *)base64DataFromString: (NSString *)string;
@end
我无法理解“无法识别的选择器”错误...
答案 0 :(得分:2)
这是一个类方法,您可以将其称为类的实例。您应该将其更改为实例方法。而不是:
+ (NSMutableData *)base64DataFromString: (NSString *)string;
使用:
- (NSMutableData *)base64DataFromString: (NSString *)string;
或者,更改通话,而不是:
NSData *imagenDecode = [[NSData alloc] initWithData:[b1 base64DataFromString:imagenS]];
使用:
NSData *imagenDecode = [[NSData alloc] initWithData:[ClaseMaestra base64DataFromString:imagenS]];
选择什么取决于您的需求。
答案 1 :(得分:2)
base64DataFromString:
是一种类方法(以+
开头)。而不是
ClaseMaestra *b1 = [[ClaseMaestra alloc]init];
NSData *imagenDecode = [[NSData alloc] initWithData:[b1 base64DataFromString:imagenS]];
你应该做
NSData *data = [ClaseMaestra base64DataFromString:imagenS];
答案 2 :(得分:0)
您正在向实例发送类消息。接收器应该是一个类。
所以:
NSData *imagenDecode = [[NSData alloc] initWithData:[ClaseMaestra base64DataFromString:imagenS]];
答案 3 :(得分:0)
如果你使用私有框架的名称,你也会得到这个错误,例如:MPMovieView。每个人都知道你不应该使用那些,但我不知道的是我使用的是一个! / p>
奇怪的是,如果您使用Xib,它们会加载系统并给您相同类型的错误(类方法)。
但是如果你在代码中加载它,它会影响系统框架。我花了一个小时的时间挠头,确保所有东西都正确连接......只是需要改变我命名自定义东西的方式。为具有类似
的任何人发布此信息