bool:YES NO
id范型,表示任何种类的对象,实际是指针
NSArray两个限制: 1)只能存储ObjC的对象,不能存储C中的基本数据类型2)不能在NSArray中存储nil(数组结束的标志)
arrayWithObjects初始化数组,必须以nil结尾
遍历数组: 1)索引2)NSEnumerator枚举3)快速枚举(推荐)
for(NSObject *obj in array)
{
NSLog(@”%@”, obj);
}
集合中只能存放对象,初始化集合必须以nil结尾
static声明的变量必须放在implementation外面或者方法中,默认为0。它的初始化在程序开机时,程序一旦启动是不能再创建的
Objective-C中不存在真正的私有方法,也无法把某个方法标识为私有方法,从而禁止其他代码调用它.这是Objective-C动态本质的副作用
Objective-C不支持多继承
isa(isa)指向对象的类
每个方法调用都获得了一个名为self的隐藏参数,它是一个指向接受消息的对象的指针
ObjC不支持自动装箱
@encode编译器指令可以接受数据类型的名称并为你生成合适的字符串
@property预编译指令的作用是自动申明属性的setter和getter方法
类别是一种为现有的类添加新方法的方式,不能添加新实例变量
//向NSSting类添加一个名称为NumberConvenience的类别
@interface NSString (NumberConvenience)
-(NSNumber*)lengthAsNumber;
@end
?委托
指针赋值,retain count 加1?
正式协议声明:
@protocol NSCopying
//methods
@end
复制:
浅层复制:不复制引用对象,新复制的对象只指向现有的引用对象
深层复制:复制所有的引用对象
[selfclass]
正式协议可以用来在类声明和方法声明中明确表达我们的意图
Cocoa提供了两个通用的文件处理类:属性列表、对象编码
键/值编码:KVC
仅KVC具备自动包装功能
只有对象间的组合才能叫复合
@synthesize表示创建该属性的访问器