gpt4 book ai didi

ios - 将参数传递给 Objective-C 中的选择器

转载 作者:可可西里 更新时间:2023-11-01 05:05:50 25 4
gpt4 key购买 nike

我的函数是这样的

-(void) doTransition:(id)sender withID:(int) n

如何将 int n 传递给选择器,

target:self selector:@selector(doTransition:)withID:3

这行不通

请帮忙谢谢

最佳答案

所以,我用谷歌搜索“使用参数调用选择器”并得到了一堆结果,第一个是关于 SO 的问题:Objective-C: Calling selectors with multiple arguments

投票最多的答案有一些细节,特别是:

[selectorTarget performSelector:mySelector withObject:@3];

这是一项简单的任务。可以在链接的问题/答案区域找到更多信息。

注意我传递的 @3,它不是 int 而是 NSNumber。如果您有一个 int 值,您可以通过执行 [NSNumber numberWithInt:myIntValue] 轻松获得一个 NSNumber@3 是 clang 3.4 中可用的简写语法,用于创建具有整数值的 NSNumber。在此处使用 NSNumber 而不是 int 很重要,因为此选择器调用需要一个 id 类型作为 withObject:参数,因此我需要一个对象,而不是原始类型(我不能说编译器是否为您自动换行)。

另一个重要的注意事项是定义了三个 performSelector: 函数:

- (id)performSelector:(SEL)aSelector;
- (id)performSelector:(SEL)aSelector withObject:(id)anObject;
- (id)performSelector:(SEL)aSelector withObject:(id)anObject withObject:(id)anotherObject;

所以你可以看到你可以使用不接受值的函数和接受一个或两个值的函数作为选择器,但除此之外你很可能需要编写自己的逻辑来调用参数大于 2 的函数.

关于ios - 将参数传递给 Objective-C 中的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19910588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com