3

例如,我想在每次-[UIViewController navigationController]访问该属性时生成一个警告。

出于好奇,原因是我正在使用自定义导航控制器,并且希望在我(或项目中的其他开发人员)尝试访问此属性时得到警告。

4

2 回答 2

2

唯一想到的是将 UIViewController 子类化,并且仅将您的自定义子类用作项目中其他视图控制器的基础。这样,您可以覆盖该方法并使用 #warning 让预处理器发出诊断信息。(如下所述,#warning 实际上不起作用。相反,您需要在重写的方法中编写代码以生成您认为合适的任何诊断。) 也许您的自定义导航控制器可以检查其内容控制器是否属于正确的基础班级。

绕过这是一个微不足道的演员,但如果重点是防止意外使用,它可能有一些价值。

于 2012-11-06T16:43:11.953 回答
2

您可以创建一个自定义 getter 并将其声明为已弃用:

- (UINavigationController*)navigationController __attribute__ ((deprecated))
{
    // do something
}

这样,只有当有人试图调用这个 getter 时,他才会收到警告。

于 2012-11-07T13:35:44.517 回答