【问题标题】:iPhone SDK: Delegate method not getting called-TroubleshootingiPhone SDK:委托方法没有被调用-疑难解答
【发布时间】:2011-02-22 08:47:15
【问题描述】:

如果没有调用 Delegate 方法,那么需要检查所有内容以确保在 viewController 中引用了该委托?

【问题讨论】:

    标签: iphone objective-c cocoa-touch ios4 delegates


    【解决方案1】:

    好吧,首先,您必须遵守标头中的协议:

    @interface MyViewController : UIViewController <YOUR DELEGATE'S PROTOCOL HERE, 
    UITableViewDelegate>{ } @end

    无论如何,这是最常见的错误。

    另外,请确保您正在设置您的委托。通常你可以这样做:

    myObject.delegate = self;

    虽然有些类在初始化时会这样做:

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"MY APP"<br>                                                message:@"HELLO" <br>                                               delegate:<em><b>self</b></em> <br>                                      cancelButtonTitle:@"CLOSE" <br>                                      otherButtonTitles:nil];

    【讨论】:

    • 感谢您的意见。这就是我们必须做的一切吗?没有其他地方我们必须声明它对吗?
    • 不正常。尽管正如@occulus 所说,您通常可以直接从 Interface Builder 设置委托。
    【解决方案2】:

    如果委托方法没有在您期望的时候被调用,则可能是您实际上没有连接委托。这可以在代码中或在界面生成器中完成。例如,接口构建器中的UITableView 可以将其dataSource 和委托出口附加到目标,例如“文件的所有者”。

    【讨论】:

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