objective-c – 如何阻止将超类方法调用到子类

objective-c – 如何阻止将超类方法调用到子类,第1张

概述我正在使用子类扩展类的功能,并且我正在做一些使子类的上下文中的超类方法变得危险(应用程序将在循环中挂起)的脏东西.我知道这不是一个天才的想法,但是我会选择低调的果实,现在它会节省我一些时间.哦,这是一份肮脏的工作,但有人必须这样做. 最重要的是,我需要从外部阻止该方法,或者在直接调用超类时抛出异常. (但我仍然从子类中使用它,除非小心). 最好的方法是什么? 更新— 所以这就是我的目标.我不是自我 我正在使用子类扩展类的功能,并且我正在做一些使子类的上下文中的超类方法变得危险(应用程序将在循环中挂起)的脏东西.我知道这不是一个天才的想法,但是我会选择低调的果实,现在它会节省我一些时间.哦,这是一份肮脏的工作,但有人必须这样做.

最重要的是,我需要从外部阻止该方法,或者在直接调用超类时抛出异常. (但我仍然从子类中使用它,除非小心).

最好的方法是什么?

更新—

所以这就是我的目标.我不是自我回答,因为Boaz的回答提到了多种有效的方法,这就是适合我的方式.在子类中,我重写了这样的方法:

- (int)dangerousMethod{  [NSException raise:@"Danger!" format:@"Do not call send this method directly to this subclass"];  return nil;}

我将此标记为已回答,但显然这并不意味着它已经结束,欢迎进一步的建议.

解决方法 只要新实现不调用不安全的超类方法,只需在子类中重新实现不安全的方法并让它不执行任何 *** 作或抛出异常或重新实现它是安全的.

对于这里的C工作人员:Objective C不允许您将方法标记为私有.您可以使用其类别系统将界面拆分为单独的文件(从而隐藏“私有”文件),但类上的所有方法都是公共的.

总结

以上是内存溢出为你收集整理的objective-c – 如何阻止将超类方法调用到子类全部内容,希望文章能够帮你解决objective-c – 如何阻止将超类方法调用到子类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1013881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存