0

私はRequestManegerこのようなクラスでデリゲートを設定しています:

@protocol Resend_Verify_Delegate <NSObject>
@required
-(void)VerifyResponse:(NSString*)response;
-(void)Re_Failed;

@end


@interface RequestManeger : NSObject < ASIHTTPRequestDelegate > {
id <Resend_Verify_Delegate> Re_Delegate;   
}

私もRequestManeger.mファイルで合成しています。

その後、RequestManeger.hintViewController.hファイルをインポートし、作成したプロトコルを確認します。ファイルをint して、ViewController.m次のようにデリゲートを設定する行を呼び出して[RequestManeger sharedManeger].Re_Delegate = self;います。メソッドも適用します。RequestManegerクラスからの呼び出しを設定する方法は次のとおりです。

    NSString *url = [NSString stringWithFormat:@"http://someurl.com];
NSLog(@"%@",url);

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:url]];

[request setRequestMethod:@"GET"];
[request setCompletionBlock:^{
    NSDictionary *dictionary = [request.responseString JSONValue];
    NSLog(@"%@",dictionary);
    [self.Re_Delegate VerifyResponse:[dictionary valueForKey:@"Message"]];
}];

[request setFailedBlock:^{
    NSLog(@"%@", request.error);
    [self.Re_Delegate Re_Failed];
}];

[request startAsynchronous];

ViewController.mメソッドの呼び出しは発生しましたが、現在はファイルで呼び出されていません。

私はそれについてちょっとイライラしています。どんな助けも親切にいただければ幸いです。

4

2 に答える 2

1

Re_Delegate が nil かどうかを確認します...

なぜ self.Re_Delegate を書いたのですか? オブジェクトのプロパティを持っていない [Re_Delegate Re_Failed] があるに違いないと思います

于 2013-06-06T08:39:34.223 に答える