id obj = [[NSObject alloc]init];
编译器模拟代码:
// id obj = objc_msgSend(NSObject,@selector(alloc));
// objc_msgSend(obj,@selector(init));
// objc_release(obj);
NSMutableArray *array= [[NSMutableArray alloc]init];
编译器模拟代码:
// id obj = objc_msgSend(NSMutableArray,@selector(alloc));
// objc_msgSend(obj,@selector(init));
// objc_autoreleaseReturnValue(obj);
NSMutableArray *array2 = [NSMutableArray array];
编译器模拟代码:
// id obj = objc_msgSend(NSMutableArray,@selector(array2));
// objc_retainAutoreleasedReturnValue(obj);
// objc_release(obj);
id __weakobj1 = obj;
编译器模拟代码:
// id obj1;
// objc_initWeak(&obj1,obj);
// objc_destroyWeak(&obj1);
id__weakobj = [[NSObject alloc]init];
编译器模拟代码:
// id obj;
// id temp = objc_msgSend(NSObject,@selector(alloc));
// objc_msgSend(temp,@selector(init));
// objc_initWeak(&obj,temp);
// objc_release(temp);
// objc_destoryWeak(obj);
NSObject*obj = [[NSObject alloc]init];
[objmethod:10];
编译器模拟代码:
// NSObject *obj = objc_msgSend(objc_getClass("NSObject"),sel_registerName("alloc"));
// obj = objc_msgSend(obj,sel_registerName("init"));
// objc_msgSend(obj,sel_registerName("method:"),10);