Objective-c学习笔记
1.使用#import导入头文件,一般osx命令行开发使用<Foundation/Foundation.h>,图形界面开发使用<Cocoa/Cocoa.h>
2.OC中字符串不再是数组,而是变成了NSString类型的对象,凡是涉及到字符串的都是对象,另外,当静态字符串赋值的时候,应该要使用@做标识,例如@“helloworld”
3.OC中的真假为BOOL类型,同时真为YES假为NO,占八位,系统依靠最低位来确定,最低位为0为NO,最低位不为零,为YES,所以,比较BOOL的时候,应该和NO比较
4./tmp为系统缓存目录,系统重启的时候被清空
5.id类型是oc的通用指针,该类型可以指向任何对象,但是最好不要滥用
6.oc的接口定义模式如下
@interface
{
@属性的访问权限
属性值
}
-(方法的返回类型)方法名:(参数1的类型)参数名,(参数二的类型)参数名;
@end
7.oc的接口实现如下
@implemention
-(方法的返回类型)方法名:(参数1的类型)参数名,(参数二的类型)参数名
{
函数实现/方法实现
}
@end
8.OC调用方法使用中括号,例如 [实例指针 方法名:参数1,参数2]
9.在类的实现中,可以直接访问类的实例变量,这是因为直接访问的时候OC编译器隐藏传递了一个参数self
10.最简单的生成新实例的方式为[类名 new](后面不推荐使用)
11,OC本身不支持多继承,但是可以用委托机制来实现多继承
12.在子类中想要调用父类的方法可以使用super关键字,例如 [super init]
13.定义接口的时候可以指明继承的父类,例子如下
@interface 接口名:父类名
@end
14.使用NSLog可以输出,类似于printf
15.NSLog可以打印对象,适应%@参数即可,这样系统会自动调用该对象的description方法
16.属性的存取方法,存方法使用set+属性名 取方法直接使用属性名,假设属性为xxx,则为
-(void)setxxx:(id)xxx -(id)xxx;
17.oc使用.m格式的源文件和.h格式的头文件,通常申明放在.h文件,实现放在.m文件
18.@class 类名 该关键字一般表示导入类,在.h文件中使用的比较多,不想包含头文件的时 候使用该关键字
19.范围结构体 NSRange ,表示数字的起点和大小,参数均为无符号整形,赋值有函数NSMakeRange()函数
20.坐标结构体CGPoint,参数均为浮点型,表示坐标,CGPointMake快速赋值
图形结构体CGSize 参数为浮点型,CGSizeMake快速赋值
矩形结构体CGRect 含有两个结构体类型的参数,快速赋值为CGRectMake
21.字符串类NSString的方法
stringWithFormat 创建新字符串
length 获取字符串个数
isEqualToString 字符串比较
compare 字符串比较
NSCompareResult 比较结构枚举,取值包括NSOrderAscending 等三个
hasPrefix 检测字符串是否以指定字符串开头
hasSuffix 检测字符串是否以指定字符串结尾
rangeOfString 检测字符串中是否还有指定字符串 没有返回的NSRange中location为NSNotFound
22.NSString是运行时不可变的,如果需要运行时可变的字符串需要NSMuteableString
stringWithCapacity 指定初始化容量
appendString 附加子串
appendFormat 附加格式化字符串
deleteCharactersInRange 删除字符串中指定位置的字符
因为NSMuteableString是NSString的子类,所以NSString的函数NSMuteableString 都能用
22.NSArray
NSArray中可以放入任意类型的对象,但是不能存放原生数据类型
arrayWithObjects 初始化,指定原始数据列表
count 获得元素个数
objectAtIndex 获取特定位置的元素
componentsJoinedByString 使用特定字符串链接所有元素成为一个新的字符串返回
22,可变数组NSMutableArray
arrayWithCapacity 指定初始化容量
addObject 在末尾添加对象
removeObjectAtIndex 移除指定位置的元素
objectEnumerator 获取数组对象的枚举器
23.枚举,使用枚举器
while(id thing = [enum nextobject])
{
//dosomething
}
24.快速枚举
10.5之后的新特性,while(NSString* str in array){//dosomething}
25.NSDictionary字典
dictionaryWithObjectsAndKeys 创建键值对,初始化对象
objectForKey 通过键获取对象
26.可变字典NSMutableDictionary
dictionaryWithCapacity 初始化可变字典,指定容量
setObject forkey 添加键值对
removeObjectForKey 删除键值对
27.对于NSString和NSArray,不要继承,最好使用复合
28.NSNumber数值类
用于将原生数据类型装箱
numberWithChar numberWithInt numberWithFloat numberWithBool 装箱
charValue intValue floatValue boolValue stringValue 拆箱
29.NSNumber其实是NSValue的子类,NSValue可以封装任何值,
valueWithBytes 指定数据长度和数据类型就能装箱
getValue 用于提取数值
30.NSNull
nil的装箱数据结构,只有一个方法null
31.oc的方法分为两种,分别是实例方法和类方法,使用-定义的是实例方法 使用+定义的方法是类方法,类方法在没有实例的时候可以直接通过类名调用,如init方法,如下
类方法 +void init:(int)a,(int)b;
实例方法 -void init:(int)a,(int)b;