(1)简介
a 万能指针,能指向任何OC对象,相当于NSObject*;
b id类型的定义;
typedef struct objc_object {
Class isa;
} *id;
(2)使用
// 注意:id后面不要加上*
id p = [Person new];
(3)局限性
调用一个不存在的方法,编译器会马上报错;
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char* argv[]) {
@autoreleasepool {
Student *s = [Student new];
// id == NSObject *
// 万能指针,能指向任何OC对象,操作任何OC对象
id d = [Student new];
[d run]; // 调用run()方法
}
}