摘要:
NSString 字符串使用API : 1.NS开头 是基本类 2.看父类是什么 3.看有没有自己的初始化方法或构造器(Tasks列表 标记红色的就是不用的)//1.创建方法 //初始化方法 (alloc init)//构造器 (类调用)//2.追加方法(字符串的拼接) append方法名stringByappendingWithFormat: //在字符串方法中,只要碰到format关键词,都可以在后面的参数中拼接参数(必须要@""的形式)//3.求子串(NSUInteger == 无符号int) substring//4.字符串替换 replacing substrin 阅读全文
摘要:
内存管理闪退:1.内存泄露(不管理内存) 2.内存过度释放OC:1.手动管理内存(MRC)//弊端 容易过度释放 2.自动管理内存(ARC)//弊端 错误都出在底层 不易查找 垃圾回收//只限于MAC应用程序手动管理内存:引用计数增加: 引用计数减少:+alloc//开辟内存 0 -> 1 | -retain +1 | -release -1-copy(只有字符串可以用)原来的不变 | -autorelease//自动 延迟释放 在某个地方控制 新开辟内存 0 -> 1 |内存管理: //1.内存的所有权:只有对内存有所有权的指针... 阅读全文
摘要:
1.属性:属性就是一对方法 与实例变量无关;//为了解决每添加一个实例变量都要添加一对方法的麻烦,苹果引入了属性的概念,一个属性就代表一对方法(setter/getter)//属性分为声明和实现//属性的声明在.h//属性的写法 @property 类型 属性名;//产生方法的规则://- (void)setName:(NSString *)name;@property NSString * name;//不要写_name//类的最终形态//声明#import @interface Hero : NSObject@property (nonatomic,copy)NSString * name 阅读全文
摘要:
1.setter(设置器) getter(访问器)//给实例变量赋值的方法,称之为setter方法 固定格式//-(void)set首字母大写的实例变量名:(实例变量类型)实例变量名;-(void)setName:(NSString *)name;//取得实例变量值的方法,称之为getter方法-(NSString *)name; //实现-(void)setName:(NSString *)name{ _name = name;}-(NSString *)name{ return _name;}//调用Person * person = [[Person alloc] init]; [per 阅读全文
摘要:
1.OC的方法:声明- (返回值) 方法名;//使用对象去调用 实例方法+(返回值) 方法名;//使用类调用 类方法2.继承:super关键字的作用只有一个:用于子类中调用父类的方法3.特殊方法:初始化方法Student.h#import @interface Student : NSObject{ NSString * _name; NSString * _sex; int _age;}//方法列表//方法结构 -/+ (返回值) 方法名;- (void) study;//-号方法:使用对象去调用 实例方法//+号方法:使用类调用 类方法+ (void) sleep;//1.带返回值的方法- 阅读全文
摘要:
面向过程:事件为中心 面向对象(OO):事物为中心 面向对象编程(OOP)类:一组具有相同特征和行为的事物的抽象. 类是有大小的.对象: 就是类的实例 对象是唯一的 是具体的OC中得类分两部分:1.接口部分(.h) :声明(特征)#import @interface Student : NSObject//1.接口部分(.h结尾){ //实例变量的列表(类的特征列表) NSString * _name;//NSString定义一个字符串 相当于C的char * NSString * _sex; int _age; //整形的还是用int就行}//方法列表(类的行为列表,类的方法在接口部分,只. 阅读全文
摘要:
函数指针 : 函数回调 动态函数调用1.指针类型和函数类型必须一致#import //int maxValue(int a,int b){// return a > b ? a : b;//}//int minValue(int a,int b){// return a 90) {// p(arr[i].name);//函数回调相当于 fun(arr[i].name);// }// }//}//void printStudent(Student * arr,int count){// for (int i = 0; i score score;}BOOL agePanduan(Stu * 阅读全文
摘要:
动态内存分配1.队列和栈的区别 : 栈中得变量 先进后出 ,队列中得变量 先进先出2.堆内存 一般由程序员分配和释放3.malloc: void *malloc(unsigned int size);//void * 表示任意类型的指针int * p = (int *)malloc(sizeof(int) * n);//(int *)强转类型 sizeof(int)分配的内存大小 *n元素个数char *str = malloc(8);strcpy(str, ”iPhone”);free(str);//标记删除,不清除内容4.Student *p = malloc(sizeof(Student 阅读全文
摘要:
魔方1.R U R' U'2.R U R' U R U2 R' //鱼头坐下 黄右13.R U2 R' U' R U' R'//鱼头右上 黄左1 阅读全文
摘要:
练习:MyFunction.h#import struct sanguosha { char name[20]; int age; float fighting;};typedef struct sanguosha SGS;//1.定义一个用来记录学生信息结构体,结构体有三个成员变量:姓名,年龄以及成绩struct stu { char name[20]; char sex; int age;};//2.定义一个结构体Node,结构体内有两个成员变量,一个是一个int类型的变量(名字自己取),另一个是Node类型的指针struct Node { int num; struct Node * p 阅读全文