Q
方法的參考
1
A
回答
4
您有一些選擇。您可以使用NSStrings
實際上有你的方法的名稱,然後就去做:
NSString *myMethodName = @"hellWorld";
SEL selector = selectorFromString(myMethodName);
您可以選擇,然後添加到您的NSArray
。
您還可以使用NSInvocations
和存儲的方法和後面定義目標:
一個NSInvocation的對象包含一個Objective-C 消息的所有元素:一個目標,一個選擇器,自變量,並且返回值。可以直接設置這些元素的每個 ,並在調度NSInvocation對象時自動將返回值設置爲 。
編輯1(爲它的樂趣):
- (Method *)getMethodsPointer{
unsigned int number = 0;
Method *myMethods = class_copyMethodList([self class], &number);
//for(int i=0;i<number;i++)
// {
// printf("%s",sel_getName(method_getName(myMethods[i])));
//}
return myMethods;
}
1
您可以選擇您array
補充。你喜歡這個創建一個選擇:
-(void)myMethod:(int)something
SEL selectorToMyMethod = @selector(myMethod:);
希望它能幫助,乾杯!
-1
您可以創建一些NSInvocations,存儲選擇器和目標類在裏面,並添加NSInvocation的到陣列。
只存儲選擇器是可能的,但前提是方法只在一個類中 - 因爲選擇器與它們的類無關。
+0
實際上,您可以在不響應對象的對象上調用選擇器。實際上你必須用'forwardInvocation:'來處理。這是創建多重繼承的一種方法。 – Peres 2012-07-05 11:46:10
相關問題
- 1. 與方法參考
- 2. 調用方法的參考
- 3. 方法參考中的參數
- 4. 使用方法參考
- 5. PHP參考靜態方法
- 6. Java 8方法參考
- 7. DojoToolkit widget.placeAt()方法參考
- 8. 地圖鏈方法參考
- 9. Ruby類方法參考
- 10. 方法和參考溢出
- 11. JavaScript OOP參考方法
- 12. C++方法參數類參考
- 13. 通行證參考的ArrayList的方法
- 14. 無法解析參考方法
- 15. 方法參考無法正常運行
- 16. 找不到可以參考的方法
- 17. JNI方法的未定義參考
- 18. 參考裏面的方法變量
- 19. 獲取GameObject參考的最快方法
- 20. 參考對象的方法上
- 21. 多個實例的Groovy方法參考
- 22. getter方法中的Const參考
- 23. javascript - 參考init之前的方法
- 24. 缺少OpenRead方法的參考
- 25. 參考創建原型時的方法
- 26. 參考\ ref命令中的方法
- 27. 引用參考數組的方法?
- 28. 我如何參考UIVIiw中的方法?
- 29. 參考方法中的一個部分
- 30. 設置的MathContext到BinaryOperator參考方法
哦,我忘了SEL不是一個對象,但你總是可以將它們轉換爲一個,如下所示:[NSValue valueWithPointer:@selector(x)] – 2012-07-05 11:38:14
我怎樣才能從另一個類中調用它? – DaSilva 2012-07-05 11:39:00
您發送「performSelector」消息到您的對象:[myObject performSelector:@selector(selectorToMyMethod)]; – 2012-07-05 11:46:16