objective-c – iPhone,是否正在使用isKindOfClass以任何方式被认为是不好的做法?

objective-c – iPhone,是否正在使用isKindOfClass以任何方式被认为是不好的做法?,第1张

概述例如,如果存在’handle all’类型方法… if ([obj isKindOfClass:class1]) { // ...} else if ([obj isKindOfClass:class2]) { // etc.. 这是不好做法吗?是否有更简洁的替代方案或更好的方法来构建代码? 运行时,可读性,可维护性或任何东西都有缺点吗? 每当某些事物被认为是好/坏的做法时,它 例如,如果存在’handle all’类型方法…

if ([obj isKindOfClass:class1]) {    // ...} else if ([obj isKindOfClass:class2]) {    // etc..

这是不好的做法吗?是否有更简洁的替代方案或更好的方法来构建代码?

运行时,可读性,可维护性或任何东西都有缺点吗?

解决方法 每当某些事物被认为是好/坏的做法时,它或多或少都是主观的.当做某事本质上是正确/错误时,它或多或少是客观的.

isKindOfClass:是检查类继承的有用方法.它回答了唯一的问题,“是一个类的对象是(给定类的一个子类)?”.它没有回答任何其他问题,例如“这个对象以自己的方式实现该方法吗?”或“我可以将对象用于X或Y吗?”.如果您按照预期使用isKindOfClass,则不会有任何问题.毕竟,在动态类型语言中,您应该有工具来提取有关对象的元信息. isKindOfClass:只是可用工具之一.

某些物品可能与他们的课程有关,这一事实不应该让你失望.他们只是将自己伪装成另一个阶级的对象,而不会破坏任何东西.如果这不会破坏任何东西,我为什么要关心?

最重要的是,您应该始终记住使用正确的工具用于任何特定目的.例如,isKindOfClass:不能替代respondsToSelector:或conformstoprotocol:.

总结

以上是内存溢出为你收集整理的objective-c – iPhone,是否正在使用isKindOfClass以任何方式被认为是不好的做法?全部内容,希望文章能够帮你解决objective-c – iPhone,是否正在使用isKindOfClass以任何方式被认为是不好的做法?所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1017363.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存