2012-06-27 55 views
-1

我有一個在ClassA中被稱爲Selector1的方法,是否可以將另一個類的方法設置爲NSInvocation對象的選擇器屬性?

在ClassB中,我想創建一個NSInvocation對象並將Selector1設置爲對象的選擇器。這可能嗎?我不知道設置這個的正確方法。

我想在ClassB的使用的代碼是這樣的:

NSMethodSignature *signature = [ClassA methodSignatureForSelector:@selector(Selector1:)]; 
NSInvocation *invocationToPass = [NSInvocation invocationWithMethodSignature:signature]; 
invocationToPass.target = self; 
invocationToPass.selector = Selector1; // How can I assign Selector1 from ClassA? 

回答

1

你需要一個SEL,就像你傳遞給methodSignatureForSelector:之一,該方法的不只是名字。

[invocationToPass setSelector:@selector(Selector1:)]; 

您還需要意識到冒號是重要的。如果該方法不帶參數,則名稱將爲Selector1;如果它需要一個,名字是Selector:。您需要將正確的名稱放入@selector()運營商。

相關問題