id,NSObject, id<Obejct>
1,id关键字在编译时不被检查,而NSObject在编译时会被检查是否被调用一些错误方法。
2,id可以是任何对象,包括非NSObject对象
3,定义id的时候不使用*,NSObject却需要。
我的理解,基本上来讲,定义id类似于定义了一个地址(只有指针,抽象指针),而NSObject是确实的定义了一个逻辑对象的地址。
而NSObject*指针 指向的是NSObject对象或其子类。
id可以指向函数,也可以指向对象。
原帖:
http://www.devdiv.com/ios_id_nsobject_id_lt_nsobject_gt_-blog-1-50764.html
http://blog.sina.com.cn/s/blog_6fa695690100ylaa.html