我想添加一个通道到通道阵列,如果它的水平高于阈值,这个函数就是提供通道级别的委托回调。多次调用函数时,将数组添加到数组中?
此fucn常用于提供级别的数据,但是在init中,我想将阈值以上的通道添加到数组中。不过,我不希望它再次添加它们,只是符合条件的每个通道的1个实例。
我想使用这段代码,并检查我从中接收数据的通道是否已经在channelArray中,如果它没有,然后添加它,如果它然后跳过它...但它没有调用/工作。
任何人都可以帮助我解决这个问题吗?问题是每个通道在每次移动时调用这个func,所以我需要它运行代码以便一次添加到数组中。
- (void)cdcControlDidReceiveBusSend:(NSInteger)channel withValue:(float)value forBus:(NSInteger)bus onModule:(NSInteger)module {
NSNumber *recievingChannel = [NSNumber numberWithInteger:channel];
NSLog(@"RECIEVED SEND DATA FOR CHAN:%ld VALUE:%f FORBUS:%ld", (long)channel, value, (long)bus);
if (value != -80.000000) {
NSLog(@"CHANNEL:%ld FADER IS UP ATTEMPTING TO ADD TO FOCUS ARRAY", (long)channel);
for (NSNumber *arrayChannel in self.focusChannels) {
if (recievingChannel == arrayChannel) {
NSLog(@"ALREADY SAVED THIS CHANNEL...SKIPPING");
} else {
NSLog(@"ADDING CHANNEL %ld", (long)channel);
[self.focusChannels addObject:[NSNumber numberWithInteger:channel]]; // add the channel number to the array of channel numbers if the fader is up
NSLog(@"FOCUS ARRAY NOW CONTAINS %lu CHANNELS", (unsigned long)self.focusChannels.count);
}
}
} else {
NSLog(@"CHANNEL:%ld FADER IS DOWN NOT IN MIXFOCUS ARRAY", (long)channel);
}
}
它比较值直接
反正这个任务是可以解决的如果您将arrayChannel的整数值与'channel'进行比较,而不是立即创建receivingChannel,那么可以工作吗? –
你是什么意思?只是使用通道而不是创建本地实例?这会如何改变? – jcad
@Toma在接受的答案中指出了区别。 :) –