ios - 使用 NSString 以编程方式访问或创建 Objective-C 中的方法

标签 ios objective-c dynamic methods

我正在尝试在运行时在我的类中使用一组字符串动态访问方法。现在这些方法已经存在,最终我想创建它们。 这可能吗?

例如:

bool nextLevel=NO;
for(NSString * match in gameLevels)
{

    if([match isEqualToString:self.level])
    {
        nextLevel=YES;
    }
    else if(nextLevel==YES)
    {
        self.level=match;
        nextLevel=NO;
    }
}
//access method named self.level

提前致谢!

最佳答案

我使用:

NSSelectorFromString(selectorString)

在您的情况下,selectorString 将是:

NSString * selectorString = @"setLevel:";

这是“setLevel”而不是“level”,因为 Objective-C 运行时会在分配发生时自动将点属性扩展到这些选择器名称。

关于ios - 使用 NSString 以编程方式访问或创建 Objective-C 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23638551/

相关文章:

iphone - 创建 NSMutableArray 的副本并仅在一个数组中编辑元素

iphone - 如何以编程方式为黑/白 UIImageView 着色?

objective-c - 应用程序 :openURL not triggered

objective-c - NS_SWIFT_NAME 基本名称验证错误

c# - 使用动态表达式 API 选择匿名类型

Java GridLayout 如何动态改变网格布局

hadoop - 如何设置动态分区,其中列键将是分区

ios - isKindOfClass Bool if 语句记录 NO

ios - 在 Xcode 中激活自定义字体的目标成员身份

ios - JSON 文件中的一个法语字符使它全部崩溃