我无法发现我在这里做错了什么。
我有2个课程,安排和音响。
在audioplayer标题中,我声明了我的功能。
- (void) loadAudioFileIntoMemory:(NSURL *)address channel:(int) value row:(int) value2;
//在audioplayer implmentation文件中,我的功能是这样的。
- (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]
答案 0 :(得分:1)
您不能使用C样式下标访问NSArray中的对象。
你需要这样做:
[self.audioPlayer loadAudioFileIntoMemory:[rawurls objectAtIndex: count] channel:0 row:0];
答案 1 :(得分:0)
这里的问题是你编写的代码是rawurls类型**NSURL
- 即指向NSURL
的指针数组。事实上,从最后一个例子来看,它的类型为NSArray
。
下标运算符不适用于NSArray
- 这是 Objective-C 而不是 c ++ 。
(NSURL*)[rawurls objectAtIndex:count]