主要讲述的是什么是构造函数 和什么是析构函数;其中类方法initialize 只有该类第一次实例化的时候调用,可以在该方法中初始化一些全局性的变化;构造函数是有很多变种的,析构函数dealloc 是在对象销毁时调用的,但是不能人为的调用,应该使用[对象名 release],让系统自动调用dealloc方法
这节课老师主要是讲述了如何在外部操作类的成员变量,使用成员变量的setter和getter方法使类的成员变量暴露给外部操作。注意的是:在这里老师是直接使用get+变量名作为getter的方法,但是本人在OC的书籍中发现不提倡使用get作为变量名的前缀,因为get前缀还有其它的一些含义;OC的书籍提倡直接使用变量名来作为getter方法的函数名。
类的封装。
1.基本完全兼容C语言2.关键字都有@开始3.OC特有for(xx in xx)4.基类:NSObject,单继承,所有的函数都是虚函数,支持借口@protocol 继承方法可选5.id类型void*任何类型 nil==null6.类声明@interface @end类的实现@implementation @end来申明7.如果申明和实现一个类的函数,需要使用+或者-来永在函数的开始+表示类的方法-表示对象的方法8.两个文件。h和。m文件。h文件存放类,函数声明。m文件存放类的具体实现9.创建/销毁OC对象Dog *dog = [Dog alloc];//创建对象[dog init];//初始化构造函数[dog release];销毁对象10.字段和函数声明11.字段定义,@public @private @protected(缺省)oc函数都是public12.OC声明接口必须要带**即表示真正的指针,也表示引用
IOS学习路线ui,网络游戏网络协议音视频频处理图形图像流媒体
nsdate 字节流(写入文件)
Dog *dog = [[Dog alloc] init];
关键字都以@开头@private@interface @end 类声明 xx.h@implementation @end 类实现 xx.m 对象方法和类方法如果申明和实现一个类的函数,要使用+或- 用在函数开始+ 表示 类方法- 表示 对象方法 方法定义:- (int) f:(int)xx;- (int) f:(int)xx :(double)y;类引用Dog * myDog //* 表示指针也表示引用声明多参数例子(有标签)- (int) insertObject:(NSObject *)o AtIndex:(int)index Before:(BOOL)before调用例子:int ret = [ obj insertObject:10 AtIndex:20 before:TRUE];
面向对象1.建一个对象 冰箱2. 冰箱.打开3.冰箱.存储(大象)4.冰箱.关闭
语法oc:是c语言的面向对象的一个超集;oc最初只是为了给C设计一款最小化的面向对象语法;同时也完全兼容C语言;为了避免和已有的C、C++关键字冲突。所有oc关键字都是以@开始的;类的声明:类的声明都声明在@interface 和@end 之间;@interface Dog:NSObject{这里写字段;属性 如:int age;}外边写方法(函数)的声明;如:-(void) setAge:(int)newAge;@end 这个整体放到Dog.h中;类的实现:首先把类的声明包含进来,#import “Dog.h”, @implementation Dog写类的实现;如-(int)getAge{return age;}@end 整体在.m文件中; 创建对象:Dog *dog = [Dog alloc ]然后初始化构造函数;[dog init]销毁对象;[dog release]
面向对象的思考:(面向过程:注重业务功能;) 面向对象:是一种思想;注重功能的封装和层次;冰箱放大象问题引入;面向对象:从一个执行者,转换成一个指挥者不关心功能是怎么写的,只关心调用接口!
这一课,二十多分ige钟的时候,讲了
数据类型NSDictionary(字典):元素成对出现,不考虑对象的顺序;
数据类型NSSet(集合):NSSet和NSArray都是存储数据或对象,NSSet没有按照一定的顺序存储(利用哈希表查找比数组快); 例子:NSSet *set = [[NSSet alloc] initWithObjects:@"o",@"b",@"c",@"d",nil]; NSMutableSet = [...]; //可变集合
数据类型NSNumber:把一些如float,int,chat,等等一些基本数据类型转换成对象的类型; 数据类型NSValue:把一些复杂的基本数据类型如:结构体,指针等类型转换成对象的形式; 例子:NSValue *value = [[NSValue alloc] initWithBytes:&(数据类型的地质) objCtype:@encode (数据类型的 类型+名称如:struct sct)];
数据类型NSData:数据转换。可以把一些字符串或图片等等一些非常复杂的数据类型转换成01字节流。 例:NSData *data = [str dataUsingEncoding:NSUTF8StringEncodding];//把str字符串转换成utf8数据类型 NSString *newStr = [[NSString alloc] iniWithData:data encoding:NSUTF8StringEncoding];//把01字节流转换成字符串
NSArray *array = [[NSArray alloc] initWithObjects:@"sda",@"fdsfs",@"sfa" ,nil];array遍历NSLog(@"%@",array)打印对象的 description
substringToIndex 从头到指定的字符串前一个substringFromIndex 从指定字符串到最后一个 NSRange range = {3,4};第三开始 数4个substringWithRange range NSMutableString (可变字符串)不能直接赋值增追加 str appendString插入 str insertString:@"XXXX" atIndex 4删deleteCharactersInRange: NSMakeRange(3,5)改str replaceCharactersInRange:NSMakeRange(3,2)withString:@"123";
属性可以在不使用括号的情况下使用点语法.