小编Mar*_*ham的帖子

使用NSString调用XCode 4.x中的函数

我确定这是一个简单的问题,但我如何用[self MyFunction]调用函数; 'MyFunction'在哪里是NSString?我想使用各种变量调用函数,这些变量在连接时形成函数名称(即FunctionName1,FunctionName2等)

例如(简化):

NSString *MyStringValue=@"FunctionName";
int MyNumber = 1;
NSString *MyFunction=[myStringValue stringByAppendingFormat:@"%d ",myNumber];
Run Code Online (Sandbox Code Playgroud)

所以我想使用以下方法调用函数"FunctionName1":

[self MyFunction];
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有人可以帮忙吗?


编辑:这是现在有效的完整代码:

-(void)getnewblock {

    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];

    NSNumber *actionblockload = nil;
    actionblockload = [standardUserDefaults objectForKey:@"actionblock"];
    int actionblock = [actionblockload intValue];

    NSString *block=@"setblock";
    NSString *blockanimate=@"blockanimate";

    NSString *blocktochange=[block stringByAppendingFormat:@"%d",actionblock];
    NSString *blocktoanimate=[blockanimate stringByAppendingFormat:@"%d",actionblock];

    SEL sel1 = NSSelectorFromString(blocktochange);
    SEL sel2 = NSSelectorFromString(blocktoanimate);

    [self performSelector:sel1];
    [self performSelector:sel2];

    [self setblockimages];
}
Run Code Online (Sandbox Code Playgroud)

唯一的问题是我得到'可能导致泄密'的消息 - 尽管该应用运行正常.

objective-c xcode4.5

1
推荐指数
1
解决办法
3303
查看次数

标签 统计

objective-c ×1

xcode4.5 ×1