我试图将值传递给委托中的方法,并返回NSString
值。出于某种原因,我得到一个没有在代理错误中找到的属性。我会很感激任何帮助。这里是我的代码:将值传递给委托方法
delegate.h
- (NSString*) getSoundFilePath:(int)pageNumber;
delegate.m
-(NSString*) getSoundFilePath:(int)pageNumber{
switch (pageNumber) {
case 1:
return soundFilePathPage1;
break;
case 2:
return soundFilePathPage2;
break;
case 3:
return soundFilePathPage3;
break;
case 4:
return soundFilePathPage4;
break;
case 5:
return soundFilePathPage5;
break;
case 6:
return soundFilePathPage6;
break;
}
return nil;
}
app.m
int page = 1;
NSString *audioFilePath = appDelegate.getSoundFilePath:page;
//that's where i get the error
这是一个完全没有错误。您的应用程序委托没有名为'getSoundFilePath'的属性,它有*方法*,名为'getSoundFilePath:'。即使有,也不能将参数传递给属性。正如答案中所述,您应该阅读一些Objective-C的介绍。 – Cyrille
还要注意,方法名称中的前导“get”在ObjC中具有特定含义(这意味着该方法需要一个将用返回值更新的指针)。此方法的正确名称是'soundFilePathForPageNumber:'。 –