
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以任何方式被认为是不好的做法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)