【问题标题】:implement method FlipsideViewController in the MainViewController在 MainViewController 中实现方法 FlipsideViewController
【发布时间】:2011-07-05 14:41:46
【问题描述】:

只是一个简单的问题:如果你在 .h 文件中编写一个方法,你就没有“必须”在 .m 文件中编写实现吗?我发现使用 FlipsideViewController,如果你创建一个新的项目(实用程序),方法:“flipsideViewControllerDidFinish”实际上是在“MainViewController.m”中“实现”的。我只是想弄清楚这一点,谢谢您的回答;)

保罗

【问题讨论】:

  • 这是一个协议(请参阅下面 Caleb 的回答)。但即使不是,是的,您可以在标头中声明一个方法而不实现它。但是它会在运行时崩溃。这不是一件好事。 ;)

标签: objective-c implementation


【解决方案1】:

FlipsideViewControllerDelegate 是在 FlipsideViewController.h 中声明并由 MainViewController 采用(在其中实现)的协议。主视图控制器需要知道反面控制器何时完成,但 FlipsideViewController 知道有关 MainViewController 的细节是没有意义的。它只需要知道有一个对象应该在完成时通知它,并且该对象实现了 FlipsideViewControllerDelegate 协议中的方法。这是委托模式:在How Delegation Works 中了解更多信息。

【讨论】:

  • 完全正确——请注意,这些方法包含在一个以@protocol 开头并以@end 结尾的块中。这是一个 Objective-C 协议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
  • 2016-12-12
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多