Objective c 如何在操作中传递参数:@selector?
我试图通过操作:@selector传递NSString参数。我试过很多东西,比如Objective c 如何在操作中传递参数:@selector?,objective-c,selector,Objective C,Selector,我试图通过操作:@selector传递NSString参数。我试过很多东西,比如 action:@selector(function:example) action:@selector(function:example) action:@selector(function) withObject:example 这些都不适合我,我也不知道该怎么办 这是我尝试选择的方法 - (void) function: (NSString *)testString{ //Whatever stuffz }
action:@selector(function:example)
action:@selector(function:example)
action:@selector(function) withObject:example
这些都不适合我,我也不知道该怎么办
这是我尝试选择的方法
- (void) function: (NSString *)testString{
//Whatever stuffz
}
这是选择器所在的完整代码行
[testButton addTarget:self action:@selector(function:) forControlEvents:UIControlEventTouchUpInside];
您可以将值传递给选择器,如下所示
[self performSelector:@selector(function:) withObject:@"myString"];
您不能将字符串传递给按钮操作,而将按钮本身传递给方法。如果要在方法中使用任何字符串值,则需要声明一个变量或方法,该变量或方法将返回特定字符串 不能使用addTarget:action:forControlEvents:直接发送不同的参数,它只会将其selfUIButton*发送到@selector 意思是你正在做的事情就像:[自我功能:
[testButton addTarget:self action:@selector(testButtonAction:) forControlEvents:UIControlEventTouchUpInside];
- (void)testButtonAction:(UIButton *)sender
{
[self performSelector:@selector(function:) withObject:@"yourString"];
}
- (void) function:(NSString *)testString
{
NSLog(@"testString :%@", testString);
}
希望这有帮助。不完全清楚您的情况。您可以发布您试图获取选择器的方法签名吗?您试图用它调用什么方法?>为什么要传递NSString?我试图通过按下按钮从函数发送数据库名称。我希望这是有意义的。定义一个常量,如define DATABASE_NAME@db1,并使用DATABASE_NAME在函数中访问它。谢谢你帮助解决了我的问题