我試圖將值傳遞給委託中的方法,並返回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:'。 –