回答
如果fun
預計沒有參數,你可以這樣做:如果希望一個對象參數
[target performSelector:fun];
,你可以這樣做:
[target performSelector:fun withObject:someObject];
如果它期望兩個對象參數,您可以這樣做:
[target performSelector:fun withObject:someObject withObject:anotherObject];
如果需要三個以上的參數,或者如果它預期不是對象的參數,你必須使用objc_msgSend
,由this answer解釋。
非常感謝。你知道如何獲得這個樂趣作爲obj例如self.targetFun = fun; – user1052163 2012-08-17 17:43:05
- (id) init:(NSString*)fun{
[target NSSelectorFromNSString(fun)];
}
- (void) methodCaller{
[[MyClass alloc] init:NSStringFromSelector(@selector(method1))];
}
非常感謝。你知道什麼是(SEL)類型的樂趣,例如我不能這樣做「id targetFun = fun」; – user1052163 2012-08-17 17:54:34
選擇器總是由計數器字符串表示。你能告訴場景,你可以在其中獲得選擇器的ID。好玩的是總是SEL類型選擇,如果你想將它從1種方法傳遞作爲一個對象以外,那麼我們寧願NSString的,因爲蘋果還與NSString的SEL的相互轉換隻提供了API。 – 2012-08-17 18:26:13
非常感謝你真的工作。 – user1052163 2012-08-18 00:45:52
您可以使用三種mehods此:
- 使用
performSelector:
,如:[target performSelector:fun withObject:nil];
- 使用
detachNewThreadSelector
這樣的:[NSThread detachNewThreadSelector:fun toTarget:target withObject:nil];
,但它會在另一個線程上運行。 - 使用
NSInvocation
喜歡:
NSInvocation *inv = [[NSInvocation alloc] init];
[inv setSelector:fun];
[inv invokeWithTarget:target];
非常感謝你如何加載這個樂趣到另一點例如[singleton single] .fun = fun;這樣我可以移動這個有趣的OBJ到另一個類的函數 – user1052163 2012-08-17 17:59:42
不能調用使用選擇'.'或'[目的地選擇]'這些方法。要麼打電話給任何上述方法或其變體。如果你需要將選擇器傳遞給另一個類,那麼在那裏創建一個'SEL'對象並將其傳遞給它。 – 2012-08-17 18:04:45
使用可以像NSString一樣獲得樂趣。然後可以將其用作對象,但在這兩種情況下,都需要將SEL(伊娃)轉換爲對象。 「」運算符用於調用屬性的getter或setter而不起作用。 – 2012-08-17 18:28:12
- 1. PHP樂趣codeing
- 2. 砸堆棧的樂趣和利潤,代碼執行順序
- 3. Firebase initializeApp(config);樂趣
- 4. 與OpenLDAP的樂趣
- 5. Match.fun錯誤(樂趣)
- 6. 樂趣CSS花車
- 7. 在Scala中,樂趣_和樂趣之間的區別是什麼
- 8. 如果方法「[ACLASS respondsToSelector:@selector(樂趣)」的樂趣有三個參數
- 9. 黑莓 - 樂趣與FieldManagers
- 10. Mysql查詢返回樂趣
- 11. Python tkInter條目樂趣
- 12. 猛砸報價樂趣
- 13. 樂趣Lambda表達式
- 14. 樂趣與MySQL - 如何寫有一個delete語句
- 15. 確定最大樂趣的算法
- 16. 更多C++多重繼承的樂趣
- 17. 將子句轉換爲樂趣
- 18. Moq和異步使用LazyCache的樂趣
- 19. 更多的PHP MySQL的INSERT樂趣
- 20. Haskell的數學式系統的樂趣
- 21. 科特林協程VAL VS樂趣
- 22. JAVA_HOME環境變量和Java JDK樂趣
- 23. 試圖修改Videocapture :: retrieve()樂趣
- 24. 使用最大公約數樂趣
- 25. C#評估和演示ASPX樂趣
- 26. * LONG *執行時間 - 共同興趣
- 27. 如何把「SEL」和「id」轉換爲NSString?
- 28. 如何從目標文件(Mach-o)中獲取SEL(@selector())? SEL如何存儲在Mach-o中?
- 29. 如何從警報樂趣英特爾XDK刪除的文件名
- 30. 如何區分jQuery中id爲多個錨點標籤的onclick樂趣
我不能告訴你在問什麼。 – Almo 2012-08-17 17:36:23