1.编译指令:cc -c xx.m
2.查看所有文件:ls - l
3.新建文件:touch xx.m
4.打开文件:open xx.m
5.编译文件:cc -c xx.m
6.警告:2 warnings generated.
7.继承语法:@interface xxx : NSObject @end
8.加上 #import <Foundation/Foundation.h>
9.程序一退出,就会回收说有的内存空间
10.OC中使用指针来使用对象,指针指向对象的地址
11.[Car new]会创建出一个新对象,并且会返回新对象本身(新对象的地址)
12. OC对象的本质就是结构体
13.实例变量也叫成员变量
14.error:instance variable 'wheels' is protected p->wheels = 4;
@public 可以让外部间接地访问类内的成员变量
15.默认情况下,所有成员变量的对象值都是0
16.类的声明,写成员变量,方法的声明
17.类的实现
18.对象方法必须以减号开头,OC方法中的小括号,只能扩住数据类型
19.发送消息,所有对象都能共享这段代码,指针
20.p里面存储的东西,交给p2,那么p2指针指向的地址的数据是p指向地址的数据
21.对象的简单内存分析,类只占一份存储内存空间,一个对象会占有一块内存空间,类的内存空间和对象不相同
22.在使用类创建对象之前,会将类的内存空间申请出来,类里面有方法列表,每个对象内部其实都有一个默认的指针 isa
23.对象内部有一个isa 指针,它的作用,就是指向对象所对应的类
24.类里面有一个方法列表,的内存空间
25.OC对象与函数的关系:函数参数是基本数据类型就是值传递,如果函数参数是个指针就是; [Car new]这行代码过后就在内存中有一个类 和 对象的内存空间了。
Car类-(void)run;方法列表;
地址:ffc0 Car对象 Wheels=0 Speed=0 默认的isa指针
Car *c;是一个新的指针地址 c=0xff9;
追后,c的指针地址就是赋值给了上面函数的指针,函数的指针就也指向c指针指向的那块内存地址。
函数的参数,在函数调用完之后,形参数的内存就会收回。
26.想清楚指针现在指向的是谁,类的内存只有一份
27.OC中的对象一直会在内存中,对象是不可能回收的
28.mian函数退出后,所有内存都会回收。
29.实例变量,必须有对象的时候,这个对象才能产生
30.@interface 里面只允许给成员变量申明,不允许给成员变量赋值
31.static 不可以修饰成员变量(实例变量)
32.函数有内部函数和外部函数,static 修饰的函数式内部函数,方法不允许
33.OC程序与c使用的编译器是一样的,编译的顺序都是从上到下编译,只需要把申明放在前面
34.函数和方法的区别:本质的区别,对象的方法都是-开头,声明和实现写在制定的地方,否者编译器不知道是哪个类的,对象方法只能对象来调用。
35. ./a.out 是调用main()函数,已经完成编译和链接的2步了
36.函数是可以写在文件中的申明之外的任意位置,函数是归文件所有的,main()函数之后的话,就先申明一下。最好,还是将函数写在外面。
37.对象方法是归类所有或者是对象所有
网友评论