Hem*_*ang 2 action arguments objective-c selector ios
我UIButton想在其中添加一个存储到的目标动作NSArray.
我想要的东西,
- (IBAction) myAction
{
//Do Something
}
//Add myAction to myArray
[myArray addObject:myAction];
//Add target on myButton
[myButton addTarget:self action:@selector([myArray objectAtIndex:0]) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)
我正在尝试它,但它显示错误消息,如,Expected Identifier和Expected ]
可能吗?有没有办法做到这一点?
如果myArray是NSStrings要用作选择器的数组,则可以使用NSSelectorFromString:
[myButton addTarget:self action:NSSelectorFromString([myArray objectAtIndex:0]) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)
或者,如果要在a中存储选择器NSArray,则必须将它们包装在一个中,NSValue因为a SEL不是Objective-C对象:
NSValue* selCommandA = [NSValue valueWithPointer:@selector(handleCommandA:)];
NSValue* selCommandB = [NSValue valueWithPointer:@selector(handleCommandB:)];
NSArray *handlers = [NSArray arrayWithObjects:selCommandA, selCommandB, nil ];
SEL mySelector = [[handlers objectAtIndex:0] pointerValue];
[myButton addTarget:self action:mySelector forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1895 次 |
| 最近记录: |