委托方法停止被调用(用于工作)

时间:2013-06-06 08:34:12

标签: iphone ios objective-c delegates protocols

我正在这样的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.h int 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文件中调用。

我很沮丧, 任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:2)

你做过这样的样品吗? 在你的.h说Say TempViewController类

@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 { }

<。hm>中的

初始化TempViewController的对象

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

在此处实施您的方法

  • (void)yourMethod {}

这肯定对你有用:)

答案 1 :(得分:1)

检查Re_Delegate是否为nil ......

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