[英]How to call class method from NSString in obj-c?
在 obj-c 中,我該如何調用
[myClass myString];
其中myString = @"myMethod";
應該相當於[myClass myMethod];
不確定這種元語言操作是否可行。
[myClass performSelector: NSSelectorFromString(myString)];
文件:
NSString
轉換為選擇器(類型SEL
) [myClass class]
返回元類,在元類上調用 class 方法。 例如
[NSString someClassMethod];
NSString *instanceOfString = @"some string instance";
[[instanceOfString class] someClassMethod];
編輯:我誤讀了這個問題。 使用NSSelectorFromString
從 NSString 獲取 SEL。 這記錄在 Apple 的Foundation Functions Reference中,您還將在其中看到NSClassFromString
、 NSStringFromClass
、 NSStringFromSelector
、 NSStringFromProtocol
和NSProtocolFromString
等。
您可以使用NSSelectorFromString
,以下內容應該可以工作:
SEL selector = NSSelectorFromString(@"myMethod");
[myClass performSelector:selector withObject:nil];
SEL mySelector = NSSelectorFromString(@"myMethod");
[myClass performSelector:mySelector];
或者,如果您需要比performSelector:
更靈活的參數和/或返回類型:並且朋友會給您,請查看NSInvocation class。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.