美文网首页程序员iOS Developer
关于同一个类的不同catgroy中相同属性的调用问题

关于同一个类的不同catgroy中相同属性的调用问题

作者: 2a0d699cb83d | 来源:发表于2016-03-03 17:30 被阅读216次

今天突然被人遇到如此一个问题,假如有一个类,它有两个分类,分类中都有个叫test的属性,那么调用时,先调用谁的问题。

其实我的内心是这样的


11.jpeg

但无论怎么说买还是引起了我的好奇心,于是,我们动手写了个demo,工程看起来是这样的


22.png

ViewController有两个分类,他们的内部看起来是这样的


屏幕快照 2016-03-03 下午5.05.13.png 屏幕快照 2016-03-03 下午5.05.17.png

我们的ViewController开始调用


屏幕快照 2016-03-03 下午5.06.27.png

结果是这样的


屏幕快照 2016-03-03 下午5.07.31.png

并且有警告


屏幕快照 2016-03-03 下午5.22.02.png

看来编译器发现了我们有相同的属性,但其实警告的内容是发现了相同的实例方法,冲突了。

那如果,我们ViewController+aaaaa这个类删了呢,很显然

屏幕快照 2016-03-03 下午5.26.43.png

综上,这可能和加载顺序有关,在编译完所有文件,并最后生成可执行文件时(执行文件是Mach-o格式),mach-o文件的头部,会有具体的加载信息,并且在编译时,不会再加载相同的属性,并发出警告。


333.jpeg

相关文章

  • 关于同一个类的不同catgroy中相同属性的调用问题

    今天突然被人遇到如此一个问题,假如有一个类,它有两个分类,分类中都有个叫test的属性,那么调用时,先调用谁的问题...

  • 类的公共属性

    前面的代码中,我们只给类定义了实例变量,同一个类建立的不同实例的实例属性可以不同。要实现相同类的实例共享属性,可以...

  • Rails方法之——super

    如上图,super.rb中Plane类继承了Car类。子类调用了父类的相同属性时,可以用super调用父类的属性。

  • 类加载器中双亲委派模型的知识点整理

    问题起因 在虚拟机中, 只有由同一个类加载器加载的类才算是属于同一个类, 否则即使类文件相同, 但是类加载器不同,...

  • 静态属性、方法

    同一个类的静态属性、静态方法在调用时会全部加载到jvm中,如果在其他类多次调用,先前的静态属性的值会被保存并影响后...

  • 13. 包(package)

    kotlin 中的包其实就是命名空间。不同的包下,可以有相同的类。本包中调用本类可以直接写类名,调用其他包的类需要...

  • Spring专题: 4. AOP失效的场景与原理

    问题: 同一个类中的方法互相调用,被调用方aop失效,比如下列代码,serviceA中调了serviceB,此时,...

  • 2020-10-11 Python: 类

    Define Class 根据类来创建对象 1. 调用类中的方法 2. 调用类的属性:通用属性 3. 修改属性的值...

  • +load和+ initialize (分类中同名方法的调用顺序

    主类和分类 一. 需要解决的问题 主类和分类中普通方法的调用顺序? 同一个主类的两个分类中的同名方法调用顺...

  • 4.类-静态方法及抽象类

    类的静态属性与静态方法 类可以直接使用静态属性及调用静态方法静态方法中无法调用类上面的属性(public,prot...

网友评论

    本文标题:关于同一个类的不同catgroy中相同属性的调用问题

    本文链接:https://www.haomeiwen.com/subject/dcfokttx.html