IOS学习笔记(二)

1.内存中的五大区域
栈 存储局部变量
堆 程序员手动申请的字节空间 malloc calloc realloc函数
BSS段 存储未被初始化的全局变量,静态变量
数据段(常量区) 存储已被初始化的全局,静态变量,常量数据
代码段 存储程序的代码

2.类加载
a.在创建对象的时候,肯定是需要访问类的
b.声明1个类的指针变量也会访问类
c.在程序运行期间,当某个类第一次被访问的时候,会将这个类存储到内存中的代码段区域,这个过程叫类加载
d.只有类在第一次被访问的时候,才会做类加载
e.一旦类被加载到代码段后,直到程序结束的时候才会被释放

3.对象属性的默认值
如果我们创建一个对象,没有为对象的属性赋值,那么这个对象的属性是有值的。
如果属性的类型是基本数据类型,默认值为0;
如果属性的类型是C指针类型,默认值为NULL;
如果属性的类型是OC指针类型,默认值为nil

4.NULL与nil使用建议:
C指针用NULL
OC的类指针用nil
5.如果1个类指针的值为nil,代表这个指针不指向任何对象
Person *p1=nil;
那么这个时候,如果通过p1指针去访问p1指针指向的对象的属性会报错
如果通过p1指针去调用对象的方法,运行不会报错,但方法不会执行

6.分组导航标记:
a.#pragma mark 分组名——-就会在导航条对应的位置显示1个标题
b.#pragma mark - ———就会在导航条对应的位置显示一条水平分割线
c.#pragma mark -分组名 —–就会在导航条对应的位置先产生1条水平分割线,再显示标题

7.当对象作为方法的参数的时候,参数应该这么写,参数类型是类指针
-(void) test: (Dog *)dog;

猜你喜欢

转载自blog.csdn.net/zjf_0812/article/details/80611931