本文介绍: 16. 在 ARC 下 不显示制定属性关键字默认哪些关键字atomic,readwrite,strong(对象),assign(基本数据类型)。17. 能否向编译后得到的类中增加实例变量?能否向运行创建类中添加实例变量为什么?因为编译后类的相关信息已经注册runtime 之中了,类在运行过程维护类的数据结构所占的内存大小已经确定了,此时,不可能类中添加具体的实例变量了;在运行时创建的类不一样,在没有调用相应的函数objc_registerClassPair )之前,是可

16. 在 ARC 下 不显示制定属性关键字默认哪些关键字

atomic,readwrite,strong(对象),assign(基本数据类型)。

17. 能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量为什么

因为编译后类的相关信息已经注册runtime 之中了,类在运行过程维护类的数据结构所占的内存大小已经确定了,此时,不可能向类中再添加具体的实例变量了;

运行时创建的类不一样,在没有调用相应的函数objc_registerClassPair )之前,是可以添加相关的实例变量的,这其实也是无可厚非的,如果这时候都不能添加类的成员变量的话,那么在运行时去创建类的意义就不是很大了。

18. 猜想runloop内部如何实现的? *

其实 runloop 的实质也是一种事件循环机制,有代码简单来说,就是这样:

function loop() {  
    initialize();    
    do {       
        var message = get_next_message(); 
        process_message(message);   
        } while (message != quit);}

19. objc 中向一个 nil 对象发送消息将会发生什么

在其它的语言当中,对一个指针进行相关的操作往往会造成崩溃的情况,但是对于 Objective-C 来说,向一个指针发送消息是完全有效的,并不会造成程序崩溃
  
如果一个消息没有返回值,向一个 nil 对象发送这样的消息,不会执行任何的操作,对于一个拥有返回值消息来说,向一个 nil 对象发送这样的消息,消息会返回空对象或者 0;

20. objc中向一个对象发送消息[obj foo]和objc_msgSend()函数之间什么关系

在 Objective-C 中向任何一个对象发送任何的消息,最终都会间接地调用到了 objc_msgSend() 函数

原文地址:https://blog.csdn.net/majian89351268/article/details/123972908

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_39372.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注