несовместимый тип аргумента в Objective-C - что я делаю не так? - PullRequest
0 голосов
/ 23 ноября 2010

Я не могу определить, что я делаю здесь неправильно.

У меня есть 2 класса, жгут и аудиоплеер.

В заголовке аудиоплеера я объявил свою функцию следующим образом.

- (void) loadAudioFileIntoMemory:(NSURL *)address channel:(int) value row:(int) value2;

// В файле внедрения аудиоплеера моя функция выглядит примерно так:

- (void) loadAudioFileIntoMemory:(NSURL *)address channel:(int)value row:(int)value2
{

 //NSLog(address);
}

Когда я пытаюсь вызвать функцию следующим образом, я получаю несовместимый тип для ошибки аргумента.(кстати, audioPlayer является членом жгута проводов, а строка ниже от жгута)

[self.audioPlayer loadAudioFileIntoMemory:rawurls[count] channel:0 row:0]; 

РЕДАКТИРОВАТЬ 1 для ясности

Вот как я определяю своймассив необработанных URL

rawurls= [[NSMutableArray alloc] initWithCapacity:16];
    // Create the URLs for the source audio files. The URLForResource:withExtension: method is new in iOS 4.0.
    NSURL *loop0   = [[NSBundle mainBundle] URLForResource: @"FHP_EFFECT25_C.mp3"
                                                withExtension: @"mp3"];

[rawurls addObject:loop0]

Ответы [ 2 ]

1 голос
/ 23 ноября 2010

У вас нет доступа к объектам в NSArray с подписками в стиле C.

Вам необходимо сделать следующее:

[self.audioPlayer loadAudioFileIntoMemory:[rawurls objectAtIndex: count] channel:0 row:0]; 
0 голосов
/ 23 ноября 2010

Проблема здесь в том, что вы пишете свой код так, как если бы rawurls имел тип **NSURL - то есть массив указателей на NSURL s. Фактически из вашего последнего примера, он имеет тип NSArray.

Операторы нижнего индекса не работают на NSArray s - это Objective-C , а не c ++ .

Вот как подписать NSArray :

(NSURL*)[rawurls objectAtIndex:count]
...