我正在这样的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
文件中调用。
我很沮丧, 任何帮助都会受到赞赏。
答案 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;
在此处实施您的方法
这肯定对你有用:)
答案 1 :(得分:1)
检查Re_Delegate是否为nil ......
你为什么要写self.Re_Delegate?我认为必须有 [Re_Delegate Re_Failed] 你没有对象的属性