我想添加一個通道到通道陣列,如果它的水平高於閾值,這個函數就是提供通道級別的委託回調。多次調用函數時,將數組添加到數組中?
此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在接受的答案中指出了區別。 :) –