нераспознанный селектор - PullRequest
       28

нераспознанный селектор

0 голосов
/ 23 августа 2011

У меня проблема со следующим кодом:

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] -> вернуть NSDictionaryс одним изображением в кодификации Base 64.

Я хочу декодер и сохранить это изображение, но в своей консоли я показал это сообщение:

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

Я не могу понять "нераспознанный селектор" ошибка ...

Ответы [ 4 ]

2 голосов
/ 23 августа 2011

base64DataFromString: - это метод класса (начинается с +).Таким образом, вместо

ClaseMaestra *b1 = [[ClaseMaestra alloc]init];
NSData *imagenDecode = [[NSData alloc] initWithData:[b1 base64DataFromString:imagenS]];

Вы должны сделать

NSData *data = [ClaseMaestra base64DataFromString:imagenS];
2 голосов
/ 23 августа 2011

Это метод класса, и вы вызываете его для экземпляра класса. Вы должны либо изменить его на метод экземпляра. вместо:

+ (NSMutableData *)base64DataFromString: (NSString *)string;

Использование:

- (NSMutableData *)base64DataFromString: (NSString *)string;

Или измените вызов вместо:

NSData *imagenDecode = [[NSData alloc] initWithData:[b1 base64DataFromString:imagenS]];

Использование:

NSData *imagenDecode = [[NSData alloc] initWithData:[ClaseMaestra base64DataFromString:imagenS]];

Что выбрать, зависит от ваших потребностей.

0 голосов
/ 15 марта 2012

Вы также получите эту ошибку, если будете использовать имя частного фреймворка, например: MPMovieView. Все знают, что вы не должны их использовать, но я не знал, что я его использовал!

Что странно, если вы используете Xibs, они загружают системную и выдают тот же тип ошибки (методы класса).

Но если вы загрузите его в коде, он затеняет системный фреймворк. Я потратил приличный час, почесывая голову, следя за тем, чтобы все было правильно подключено ... это было просто необходимо изменить, как я назвал свой собственный материал. Размещать это для тех, кто похож

0 голосов
/ 23 августа 2011

Вы отправляете сообщение класса в экземпляр. Получатель должен быть классом.

Так же:

NSData *imagenDecode = [[NSData alloc] initWithData:[ClaseMaestra base64DataFromString:imagenS]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...