class 的反射:
通過類名的字串形式例項化物件
class class = nsclassfromstring@(@"student");
student *stu = [[class alloc] init];
將類名變成字串
class class = [student class];
string *classname = nsstringfromclass(class);
sel的反射
sel sector = nsselectorfromclass(@"setname");
[stu performselector:selector withobject:@"mike"];
將方法變成字串
nsstringfromselector(@selector*(setname:))
什麼是sel?如何宣告乙個sel?通過哪方法能夠,呼叫sel包裝起來的方法
sel 就是對方法的一種包裝。包裝的sel型別資料他對應的方法位址,找到位址就可以呼叫方法。在記憶體中每個類的方法都儲存在類的物件中,每個方法都有乙個與之對應的sel型別的資料,根據乙個sel資料就可以找到對應的位址,進而呼叫方法。
sel s1= @selector(test1) ;//將test1方法包裝廠sel物件。
sel s2 = nsselectorfromstring(@"test1");//將乙個字串方法轉換成為sel物件
呼叫方法有兩種方式:
1直接通過方法名呼叫[person text];
2間接的通過sel資料來呼叫sel aaa = @selector(text);
[person performselector:aaa];
C 的反射機制
type type cassembly.assembly.gettype moduleclass object params new object 3 params 0 modulecode params 1 titlefront modulename params 2 e no igeneraht...
PHP的反射機制
php5新增了一項新的功能 reflection。這個功能使得phper可以reverse engineer class,inte ce,function,method and extension。通過php 就可以得到某object的所有資訊,並且可以和它互動。反射是什麼?它是指在php執行狀態中...
PHP的反射機制
php5新增了一項新的功能 reflection。這個功能使得phper可以reverse engineer class,inte ce,function,method and extension。通過php 就可以得到某object的所有資訊,並且可以和它互動。反射是什麼?它是指在php執行狀態中...