mac理解

来源:互联网 发布:java 执行命令 带参数 编辑:程序博客网 时间:2024/06/18 18:09

IOS面试经常被问道的问题

http://blog.csdn.net/pingchangtan367/article/details/16824281


SDK

文件管理filemagager:新增,删除,移动,打开,复制。

整形:按照符号有符号,无符号;按照占用字节分:1个字节,2个字节,4个字节,8个字节

流:按照方向上,流可以是输入流(读操作流)或者输出流(写操作流)。操作有,读,写,定位操作。

socket流程:创建连接字,设置地址端口,开始监听。(封装事件,发布服务)


Self.跟存取方法有关

平时我们用的方法名和属性名是一样的,self.myObject中的myObject是存取方法名,不加self.的myObject是真正的属性


关键字extern的表明这条语句是变量的声明而不是定义。记住,声明不会引起分配变量的存储空间,而定义会引起变量存储空间的分配。




if((self = [super init]))
{
};
return self;
self = [super init] //将父类初始化之后,将其返回的对象的首地址指针覆盖当前对象的首地址 //目的是防止父类改变对象的内存地址,导致self指针指向另外地址以及内存泄



//,在父类是单件、类簇或者有共享资源的时候,必须依照实际情况考虑是否加上这行代码。




self指向了对象的首地址,isa又是保存了对象的类对象的首地址
@interface NSObject <NSObject> 
{
    Class isa  OBJC_ISA_AVAILABILITY;


}




实例对象有个isa的属性,是一个objc_class 结构类型的指针,指向它的类;里面的isa指向类对象
(可以猜想objc_class描述一个类,要描述一个类,
   包括:继承自的父类super_class;类名name,大小instance_size,实例成员ivars,实例方法methodLists,协议protocols;类对象isa
同理,类对象中的isa包括的对应信息是:

  包括:继承自的父类super_class;类名name,大小instance_size,类成员ivars,类方法methodLists,类协议protocols=nil;isa=nil)



对比区别:对象,类,元类,根元类。

Object_c 对象的本质是一个结构(objc_object),isa指向类; 类本质上也是一个结构(objc_object),isa指向元类;元类本质上也是一个结构(objc_object),isa指向根元类。根元类本质上也是一个结构(objc_object),isa指向它自身。




0 0