答案是输出的 <ViewController: 0x7f90df907960>
会输出123
1.为啥会往上取值
首先cls本身是类对象信息,相当于一个isa指针的作用,而obj指向了cls就是持有了这个isa,而一般调用函数就是通过isa去调用,然后去method_list里面找,而方法列表也确实有这个方法,所以会调用成功,然后就是寻找name这个属性,(详见iOS栈分配空间的地址问题),而类的本质是结构体,结构体第一个值是isa,后面的属性是逐渐变大的,所以这里去找name,也是往高地址去找,所以声明了str,就会输出str的内容
2.为啥能取到值,或者说super viewDidLoad干了啥
iOS栈分配空间的地址问题
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。