摘要:
A.内存存放、retain、release1.栈内存:存放局部变量,运行超过变量作用域自后编译器自动回收2.堆内存:存放对象(地址,对象实体)3.对象的基本结构(1)引用计数器(4字节):当计数器为0的时候被回收,初始化时为1(2)当使用alloc、new、copy创建对象的时候,计数器默认是1(3... 阅读全文
摘要:
A.概念1.SEL类型代表方法2.每个方法都有一个对应的SEL类型的数据3.实例对象调用方法(1)编译器会把类的方法包装成SEL类型的数据,(2)根据SEL数据找到方法地址,缓存此地址(3)根据方法地址调用相应的方法4.调用方法的方式 1 // 1.直接调用 2 [p... 阅读全文
摘要:
A. 实例对象打印-description1.当使用NSLog函数并且使用%@占位符的时候,会调用对象的-description方法2.拿到-description的返回值,显示到console中默认返回指针地址 1 @implementation Person 2 3 - (NSString *... 阅读全文
摘要:
A.概念类对象:类也是一个对象,是Class类型的对象实例对象:创建的对象,有一个isa指针指向类B.操作获取内存中的内对象1.使用实例对象获取Class c = [p class];不必使用*2.使用类获取Class c = [Person class];C.类的加载1.先加载父类,再加载子类,加... 阅读全文
摘要:
A.给某个类扩充方法(不改变原来的类)例如,给类Person加上名为Simon的category,加上一个-study方法使用()注明Person+Simon.h 1 @interface Person (Simon) 2 - (void) study; 3 @end 4 5 Person+Si... 阅读全文
摘要:
A.id万能指针,可以指向任何对象,实质是NSObject的指针,使用的时候不用加上*B.NSObject中得类方法new1.完整地创建一个可用对象步骤(1)分配存储空间 + alloc(2)初始化 - init1 // 1.调用+alloc分配存储空间2 Perso... 阅读全文
摘要:
Xcode编译器的特性,自动生成getter和setterA.@property自动生成某个成员变量的getter和setter的声明变量的命名要求:以下划线开头 1 2 Student.h 3 @interface Student : NSObject 4 { 5 int _age; ... 阅读全文
摘要:
A. 命令行编译和XCode编译1.在存在多个.m源码实现文件的情况下,若根据需要引入.m文件,使用命令行仅仅编译主.m文件即可,但是XCode会同时编译全部.m文件,会发生编译错误(重复定义全局变量或函数)解决方案:使用.h和.m文件,分开声明和定义B.XCode功能1.自动生成.h和.m2.保存... 阅读全文
摘要:
1.NSString基本使用使用%@占位符输出对象1 int age = 15;2 int no = 5;3 NSString *str2 = [NSString stringWithFormat:@"My age is %d and no is %d", age, no];... 阅读全文
摘要:
A.对象的多种形态1.父类指针指向子类对象2.调用方法的时候,会动态监测真实地对象的方法3.没有继承,就没有多态4.好处:用一个父类指针可以指向不同的子类对象5.强制转换类型之后就能使用子类特有的方法,否则会出现warning(仍可以正常运行,即不论指针类型,只要对象存在实际方法就可以运行) 1 ... 阅读全文
摘要:
A.继承的实现: is a1.不允许子类、父类存在相同的成员变量2.方法调用优先原则:子类调用方法的时候,优先从本类寻找,若无则向上在父类中寻找3.重写:子类重新实现父类的方法,覆盖父类之前的方法4.无论对象方法或类方法都可以重写5.缺点:致使耦合性增强6.OC只能单继承B.组合的实现: has1.... 阅读全文
摘要:
A.OC弱语法1.在运行的时候才会检查方法的声明和实现2.没有声明只有实现的方法也能正常运行,只要在调用之前定义即可3.类的声明必须存在,否则会出现运行时错误B.类方法1.是类名调用的方法2.使用加号修饰的方法3.类方法和对象方法可以重名4.对象方法和类方法都允许多次声明,都不允许多次定义5.类方法... 阅读全文
摘要:
A.封装内部细节,根据需求暴露方法 1 #import 2 3 @interface Student : NSObject 4 { 5 int age; 6 } 7 8 - (void) setAge:(int) newAge; 9 - (int) age;10 11 - (void)... 阅读全文
摘要:
1 /* 2 计算器类 3 1>返回π 4 2>计算两个整数的平方 5 3>计算两个整数的和 6 */ 7 8 9 #import 10 11 @interface Calculator: NSObject12 //方法名:pi13 - (double) pi;14 15 //OC方法... 阅读全文
摘要:
1 #import 2 3 typedef enum {GenderMan, GenderFemale} Gender; 4 5 typedef enum {ColorRed, ColorBlue, ColorGreen} Color; 6 7 typedef struct 8... 阅读全文
摘要:
Obj-C中没有包得概念,使用前缀进行区分自带类用NS开头命名关键字使用@开头A. 第一个OC程序1. 导入Foundation框架的主头文件#import 自动过滤重复引入的文件2. 源代码和头文件(1) .h : 类的声明文件(2) .m : 类的实现文件3.使用终端编译链接OC程序例如:编译链... 阅读全文
摘要:
A.类型说明符(只能修饰int)short int: = short 2字节long int: long 8字节 = long 输出占位符 %ldsigned int: = signed 默认 带符号位unsigned int := unsigned 去除符号位,用以存放数值long long i... 阅读全文
摘要:
进制二进制int number = 0B1010;没有二进制的输出格式八进制 int number2 = 07613; printf("number2 = %o\n", number2);十六进制 int number3 = 0X9FEA3; printf("number3 = %x\n", num... 阅读全文
摘要:
算术运算符运算符的优先级括号 > 正负 > 数学运算 > 位运算 > 数学对比 > 逻辑对比 > 条件运算 > 赋值运算A.赋值运算符复合赋值运算符+=-+*=/=B.自增自减a++ ++aa— —aps:没有自乘自除:a** a//C.sizeof输出所占字节数D.关系运算除了0之外都是true返... 阅读全文
摘要:
union Student{ int age; char *name;} stu;union只按照最长的数据成员分配控件,适用于有N个数据不会同时出现的情况,用以压缩空间。 阅读全文