0

次のコードに問題があります:

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] ->Base64コード化で1つの画像を含む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

「認識されないセレクター」エラーを理解できません...

4

4 に答える 4

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]];

何を選択するかは、ニーズによって異なります。

于 2011-08-23T17:41:36.883 に答える
2

base64DataFromString:クラスメソッドです ( で始まります+)。だから代わりに

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

やったほうがいい

NSData *data = [ClaseMaestra base64DataFromString:imagenS];
于 2011-08-23T17:41:40.217 に答える
0

プライベートフレームワークの名前を使用すると、このエラーも発生します。例:MPMovieView。誰もがそれらを使用することになっていないことを知っていますが、私が知らなかったのは、私が使用していたことです。

奇妙なことに、Xibを使用すると、システムにXibが読み込まれ、同じタイプのエラーが発生します(クラスメソッド)。

ただし、コードでロードすると、システムフレームワークのシャドウになります。私はまともな時間を頭をかいて、すべてが正しく接続されていることを確認しました...それは、カスタムのものの名前の付け方を変更するためだけに必要でした。似たような人のためにこれを投稿する

于 2012-03-14T21:36:08.270 に答える
0

クラス メッセージをインスタンスに送信しています。受信者はクラスでなければなりません。

そうする:

NSData *imagenDecode = [[NSData alloc] initWithData:[ClaseMaestra base64DataFromString:imagenS]];
于 2011-08-23T17:47:31.353 に答える