gpt4 book ai didi

ios - ARC 不允许将 'NSUInteger'(又名 'unsigned long')隐式转换为 'id'?

转载 作者:行者123 更新时间:2023-11-28 18:49:50 25 4
gpt4 key购买 nike

我想使用一个选择器在我的 View Controller 中调用一个函数,我想将 channel 号传递给函数。这需要是一个 Int,但我无法让选择器正确响应。我该如何解决这个问题?

- (void)sendBusGetPar {
[self.viewController performSelector:@selector(getBusParams:) withObject: self.bus.channelNumber];
}

这是 Controller 中的接收函数

- (void)getBusParams:(NSInteger)busChannel {
[[self tcpControl] sendMessage:cmd(GETPAR) Module:module(BUS) ModuleIndex:busChannel
Section:section(CONTROL) SectionIndex:0
Unit:unit(FADER) UnitIndex:0
Param:param(POSITION) Value:0];
}

我知道它与转换和类型有关,但我不明白为什么在这种情况下我不能将 channel 号作为 Int 发送?

我也试过这个但是选择器没有响应所以我认为它错了?

[self.viewController performSelector:@selector(getBusParams:) withObject: [NSNumber numberWithInteger:self.bus.channelNumber]];

最佳答案

performSelector: 不应滥用于正常的方法调用。

为什么不直接调用方法呢?

[self.viewController getBusParams:self.bus.channelNumber];

如果您的 viewController 具有通用类型,请将其转换为正确的类型:

[(MyViewController *) self.viewController getBusParams:self.bus.channelNumber];

关于ios - ARC 不允许将 'NSUInteger'(又名 'unsigned long')隐式转换为 'id'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44261226/

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