【问题标题】:delegate methods stopped being called (used to work)委托方法停止被调用(用于工作)
【发布时间】:2013-06-06 08:34:12
【问题描述】:

我正在像这样在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 文件中调用。

我有点沮丧, 任何帮助将不胜感激。

【问题讨论】:

    标签: iphone ios objective-c delegates protocols


    【解决方案1】:

    你做过这个示例吗? 在说 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;
    

    在这里实现你的方法

    • (void) yourMethod { }

    这绝对适合你:)

    【讨论】:

      【解决方案2】:

      检查 Re_Delegate 是否为 nil...

      你为什么写 self.Re_Delegate?我想一定有 [Re_Delegate Re_Failed] 你没有对象的属性

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-03
        • 2020-11-28
        • 2017-05-04
        相关资源
        最近更新 更多