回答
如果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. 小strtok()樂趣
- 3. 砸堆棧的樂趣和利潤,代碼執行順序
- 4. 固定的樂趣
- 5. 謎語的樂趣
- 6. AccessViolation調試樂趣
- 7. 與OpenLDAP的樂趣
- 8. 樂趣CSS花車
- 9. Match.fun錯誤(樂趣)
- 10. Firebase initializeApp(config);樂趣
- 11. CUDA蠻力樂趣
- 12. 如何理解Kotlin中的樂趣?
- 13. 在Scala中,樂趣_和樂趣之間的區別是什麼
- 14. 如果方法「[ACLASS respondsToSelector:@selector(樂趣)」的樂趣有三個參數
- 15. C#向F#的樂趣
- 16. 黑莓 - 樂趣與FieldManagers
- 17. Regexp/htaccess重寫樂趣
- 18. Mysql查詢返回樂趣
- 19. 猛砸報價樂趣
- 20. Python tkInter條目樂趣
- 21. Mobile Safari - 樂趣與焦點()
- 22. 真理表的樂趣,Java
- 23. 紅寶石樂趣循環
- 24. 樂趣Lambda表達式
- 25. 正則表達式樂趣
- 26. 遊樂場執行失敗:
- 27. $(sel).bind(「click」,$(sel).click(,$(sel).live(「click」,$(sel).on(「click」)有什麼顯着區別?
- 28. 樂趣與MySQL - 如何寫有一個delete語句
- 29. Excel 2010宏與按鈕的樂趣
- 30. 樂趣NatGeo PowerShell腳本...工作需要
我不能告訴你在問什麼。 – Almo 2012-08-17 17:36:23