在過去的幾個星期裏,我終於從常規C進入Obj-C並開始了我的第一個應用程序。我看過教程並通讀了一本書以及很多網頁,但我知道我只是剛剛開始。無論如何,在今天早上的大部分時間和今天上午,我一直試圖讓這段代碼起作用,現在它會編譯,我有一些警告。我已經搜索並發現類似的解決方案問題,但仍然沒有骰子。我想要做的是將一個由txt文檔組成的數組放入組合框的彈出列表中。「'對象'可能無法響應'函數'」警告
AwesomeBoxList.h:
#import <Cocoa/Cocoa.h>
@interface AwesomeBoxList : NSObject
{
IBOutlet NSComboBox *ComboBoz;
}
-(NSArray *) getStringzFromTxtz;
- (void) awesomeBoxList;
@end
AwesomeBoxList.m:
#import "AwesomeBoxList.h"
@implementation AwesomeBoxList
-(NSArray *)getStringzFromTxtz
{
...
return combind;
}
- (void) awesomeBoxList
{
[ComboBoz setUsesDataSource:YES];
[ComboBoz setDataSource:
[ComboBoz getStringzFromTxtz]: //'NSComboBox' may not respond to 'getStringzFromTxtz'
[ComboBoz comboBox:(NSComboBox *)ComboBoz objectValueForItemAtIndex:
[ComboBoz numberOfItemsInComboBox:(NSComboBox *)ComboBoz]]];
/*'NSComboBox' may not respond to '-numberOfItemsInComboBox:'
'NSComboBox' may not respond to '-comboBox:objectValueForItemAtIndex:'
'NSComboBox' may not respond to '-setDataSource:'
*/
}
@end
因此,所有這些錯誤,我的OBJ-C的尚淺的知識,我必須做出某種n00b錯誤。
感謝您的幫助。
是的,我知道「;」之間的區別,和':',文檔說你需要使用comboBox:objectValueForItemAtIndex:和numberOfItemsInComboBox:來使用setDataSource :,我注意到第二個方法返回一個int並且第一個接受一個int,所以我認爲這就是他們合在一起的方式。你說得對,因爲NSComboBoxDataSource協議是非正式的,我需要更多地瞭解委託和協議,我該如何使用它,以便這些方法有效?感謝您的幫助。 – Andrew 2011-01-11 22:40:37