2

デリゲートに値を返すのに問題があります。

@protocol DataDelegateImage
- (void)failImage;
- (NSData*)successImage;
@end

@property (nonatomic, strong) id <DataDelegateImage> delegateImage;
@property (nonatomic, strong) NSMutableData* d;

そして、私は私の代表者を次のように呼びます:

[self.delegateImage failImage];

しかし、今はデータコンテンツを返す成功デリゲートを呼び出そうとしていますが、コードが機能しないため、何か問題が発生したと思います。

[self.delegateImage successImage:self.d];

何か案は?

4

4 に答える 4

6

あなたがあなたに渡すself.dと、あなたsuccessImageがそれに何かを渡すためのパラメータはありません。あなたがそれに何かを渡すことができるようにしたいなら、それはこのようになるべきです

     - (void)successImage:(NSMutableData*)para1;

また

     - (void)successImage:(NSData*)para1;

何かを返したり、何かを渡したりしたい場合を除いて、

     - (NSData*)successImage:(NSData*)para1;

type括弧内- (NSData*)は、本来あるべき戻りタイプです。これは、メソッドから返したいタイプですobject。次に、メソッド名successImageを指定すると、パラメーター:(NSData*)para1が追加され、さらにパラメーターを追加できるようになります。

     - (NSData*)successImage:(NSData*)para1 withAString:(NSString*)para2;

パラメータのtype括弧内は、取得:(NSData*)para1するオブジェクトタイプです。

お役に立てれば。

于 2012-10-30T14:52:22.293 に答える
3

- (NSData*)successImage;に変更-(void)successImage:(NSData*)data;

于 2012-10-30T14:46:36.047 に答える
1

あなたの宣言

- (NSData*)successImage;

パラメータを持たないメソッドを宣言し、タイプの値を返しますNSData。呼び出し元のコードから判断すると、本当に必要なのは、型の1つのパラメーターを受け取りNSData、特に何も返さないメソッドのようです。これは、次の宣言によって実現できます。

- (void) successImage: (NSData *) data;
于 2012-10-30T14:53:50.420 に答える
-1

データを設定またはdelegateImageに送信する場合は、@praveen-sが言うように行うことができます

デリゲートからデータを取得する場合は、おそらく次のようにします。

self.d = [[self.delegateImage successImage]mutableCopy];
于 2012-10-30T14:48:24.910 に答える