簡體   English   中英

如何從 obj-c 中的 NSString 調用 class 方法?

[英]How to call class method from NSString in obj-c?

在 obj-c 中,我該如何調用

[myClass myString];

其中myString = @"myMethod";

應該相當於[myClass myMethod];

不確定這種元語言操作是否可行。

[myClass performSelector: NSSelectorFromString(myString)];

文件:

[myClass class]返回元類,在元類上調用 class 方法。 例如

[NSString someClassMethod];

NSString *instanceOfString = @"some string instance";
[[instanceOfString class] someClassMethod];

編輯:我誤讀了這個問題。 使用NSSelectorFromString從 NSString 獲取 SEL。 這記錄在 Apple 的Foundation Functions Reference中,您還將在其中看到NSClassFromStringNSStringFromClassNSStringFromSelectorNSStringFromProtocolNSProtocolFromString等。

您可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM