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.hint 我的ViewController.h文件并确认我创建的协议。在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

2

你做过这个样本吗?在说 TempViewController 类的 .h 中

@protocol TempViewControllerDelegate <NSObject>
- (void) yourMethod
@end

@interface TempViewController : UIViewController {
}
@property (assign) id<TempViewControllerDelegate> delegate;

@end

在你的 .m 文件中合成这个委托

使用 [self.delegate yourMethod] 随时随地调用您的委托方法

现在,在另一个你想实现这个委托的类中尝试这样..

#import "TempViewController.h"

@interface SecondViewerVC : UIViewController { }

在你的 .m 文件中

初始化您的 TempViewController 对象

objTempVC = [[TempViewController alloc] initWithNibName:@"TempViewController" bundle:nil];    
objTempVC.delegate = self;

并在这里实现你的方法

  • (无效)你的方法{}

这绝对适合你:)

于 2013-06-06T08:43:20.490 回答
1

检查 Re_Delegate 是否为零...

你为什么写self.Re_Delegate?我认为必须有 [Re_Delegate Re_Failed] 你没有对象的属性

于 2013-06-06T08:39:34.223 回答