我有一個可行的方法的類,我已經測試,但Xcode中仍然引起了該方法的警告:爲什麼不能找到警告消失的方法?
MapPoint *mp = [[MapPoint alloc] initWithCoordinate:[newLocation coordinate]
title:[locationTitleField text]];
沒有「initWithCoordinate:標題」的方法發現了什麼?
我有一個可行的方法的類,我已經測試,但Xcode中仍然引起了該方法的警告:爲什麼不能找到警告消失的方法?
MapPoint *mp = [[MapPoint alloc] initWithCoordinate:[newLocation coordinate]
title:[locationTitleField text]];
沒有「initWithCoordinate:標題」的方法發現了什麼?
正如Johannes所說,你應該在類的頭文件中聲明該方法。
@interface MapPoint()
- (id) initWithCoordinate:(MapCoordinate *)coordinate title:(NSString *)title;;
@end
一個匿名類「擴展」您現有的類:
如果不使用類實現之外的方法,你可以在你的.m文件的頂部創建一個匿名類的聲明新的方法。由於您在源文件(.m)中聲明瞭它,而不是頭文件(.h),因此只有在該源文件中進行編碼時纔可見。
我不能說你的具體情況(MapPoint是一個框架類嗎?),但你應該確保方法在導入的頭文件中聲明。
如果是這種情況,並且警告仍然存在,請嘗試完全重建(clean + build)。 XCode不時有點奇怪。
我是否需要在頭文件中聲明每個方法?如果它僅在本級內使用,該怎麼辦? – TheLearner 2010-06-01 13:00:37
就像菲利普萊伯特說的那樣。該死的,我太慢了;-) – 2010-06-01 13:13:18
我相信「匿名類別」實際上被稱爲「擴展名」 – user102008 2012-01-24 03:02:43
Apple稱之爲匿名類別,而不是擴展 – 2012-01-24 07:51:57
請參閱https://developer.apple.com/library/mac/ #文檔/可可/概念/的ObjectiveC /章節/ ocCategories.html – user102008 2012-01-25 00:59:19