2010-06-22 33 views

回答

8

選擇器是類中方法的名稱。它被用來識別該方法,通常在被調用時。簽名是參數和返回類型的描述。它在調用任意方法(例如NSInvocation)時用於排列參數併爲返回值騰出空間。許多選擇器可能具有相同的簽名。

SEL aSelector = @selector(method:foo:); 
NSMethodSignature *aSignature = [theObject methodSignatureForSelector:aSelector]; 

NSMethodSignature是objc_method_description類型的包裝。

+0

所以「方法簽名」確實由參數及其類型以及方法的返回類型組成? – dontWatchMyProfile 2010-06-22 17:05:04

5

這是正確的。選擇器是方法名稱。方法簽名是返回類型和參數類型的封裝。您可以使用+[NSObject instanceMethodForSelector:]反思方法簽名,這會返回一個NSMethodSignature對象。

+2

'NSMethodSignature'不記錄它與之相關的選擇器。 – drawnonward 2010-06-22 16:41:49

+0

@drawnonward感謝您糾正我。編輯答案。 – 2010-06-22 16:56:22

相關問題