für die letzten paar Wochen bin ich endlich in Obj-C von regulär C gekommen und habe meine erste App gestartet. Ich habe mir Tutorials angesehen und ein Buch mit vielen Webseiten durchgelesen, aber ich weiß, dass ich gerade erst angefangen habe. Jedenfalls habe ich den größten Teil der Nacht und heute Morgen versucht, diesen Code zum Laufen zu bringen, und jetzt, wo er kompiliert wird, habe ich ein paar Warnungen. Ich habe ähnliche Probleme mit Lösungen gesucht und gefunden, aber immer noch keine Würfel. Was ich versuche, ist ein Array aus einem TXT-Dokument in die Popup-Liste in einem Kombinationsfeld."'Objekte' reagieren möglicherweise nicht auf 'Funktionen'" Warnungen
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
Also, mit all dieser Fehler und meine noch seicht Kenntnisse Obj-C, ich muss eine Art werden machen von n00b Fehler.
Danke für die Hilfe.
Ja, ich kenne den Unterschied zwischen ';' und ':', die Dokumentation besagt, dass Sie comboBox: objectValueForItemAtIndex: und numberOfItemsInComboBox verwenden müssen: setDataSource :, und ich bemerke, dass die zweite Methode einen int zurückgibt und der erste einen int, also dachte ich, dass sie so zusammenpassen . Sie haben Recht damit, dass ich mehr über Delegaten und Protokolle wissen muss, da das NSComboBoxDataSource-Protokoll informell ist, wie verwende ich es, damit diese Methoden funktionieren? Danke für die Hilfe. – Andrew
@Andrew, Okay, ich dachte, dass, von C kommend, Sie Semikolons kennen, aber ich habe seltsame Dinge gesehen =). Diese Delegate-Methoden sind schnell Methoden, die Ihre Klasse implementieren sollte, und keine Methoden, die von der NSComboBox implementiert werden. Ich habe in meiner bearbeiteten Antwort ausgearbeitet. –