1:id是隐式指针,所以不需要*
2:
Dynamically-typed object:e.g:id anObj;
Statically-typed object:e.g:Person *anObj;
3:OC 提供编译时类型检查,而不是运行时类型检查,所有的类型检查都发生在编译时
4:OC总是使用动态类型绑定
5:OC创建对象只能通过动态创建的方式!
6:nil :it's basically always just zero typed to it as an id !
7:Collections summary:
Array : ordered collection of objects
Note: NSNotFound returned for index if not found
//在数组中,这样来判断一个元素是否存在:if([array indexOfObject:@".."]==NSNotFound){//not exists};
Dictionary : collection of key-value pair
Note :nil returned for key if not found
Set : unordered collection of unique objects
common :
1:common enumeration mechanism
2:Immutable and mutable version :
Immutable collectionscan be shared without side effect //无副作用
Prevent unexpected changes
Mutable ojects typically carry a performance overhead //性能开销
8:数组中只能存储非基础类型数据
) NSInteger是基础类型,但是NSNumber是一个类。如果想要在NSMutableArray里存储一个数值,直接用NSInteger是不行的,比如在一个NSMutableArray里面
9:CGFloat 与 float 之间的区别
相信在定义数据类型的时候可能会有类似的疑惑,CGFloat和float到底有什么区别,什么时候该用哪一种?
typedef
float
CGFloat
;
// 32-bit
typedef
double
CGFloat
;
// 64-bit