2012-04-13 23 views
0

ich bin neu zu stackoverflow, also bitte sei sanft mit mir.Binding in Interface Builder

ich momentan meinen Weg in Objective-C und Mac OS X Entwicklung und ich bin derzeit in der einfachen Aufgabe arbeitete steckte ein paar Objekte zusammen in einem kleinen Projekt zu binden, an dem ich arbeite:

Ich habe eine Objekt AppDelegate, erstellt aus einer NIB-Datei, die ein NSMutableArray enthält. Ich wollte auf dieses Array in einer anderen Klasse zugreifen, die von NSOpenGLView abgeleitet wurde (ebenfalls aus der NIB-Datei), um die darin gespeicherten Objekte zu iterieren.

Wie kann dies im Interface Builder erreicht werden?

Danke für Ihre Hilfe.

UPDATE: Hier ist ein Teil meiner AppDelegate Code:

.h:

@interface AppDelegate : NSObject <NSApplicationDelegate> { 

    IBOutlet NSMutableArray *_players; 

} 

@property (assign) NSMutableArray *_players; 

Zusätzlich habe ich eine MyOpenGLView (implementierende NSOpenGLView), wo ich die Objekte aus dem _players Array zugreifen möchten.

+0

WENN Sie sagen, "mit einem NSMutableArray", was meinst du? Meinst du es hat eine NSMutableArray als eine Eigenschaft? Ein Outlet? – Vervious

+0

Ich habe die Frage mit meiner aktuellen Definition des fraglichen Arrays aktualisiert. Sieht aus wie beides (Eigentum UND Ausgang) zu mir. Kann mir bitte jemand den Unterschied erklären? – DocJones

+0

Ein IBOutlet ist eine Referenz zum Interface Builder, während eine Eigenschaft ein Mittel zum Zugriff auf Daten eines Objekts ist. Interface Builder kann nicht auf Dinge verweisen, es sei denn, es gibt eine Möglichkeit, darauf zuzugreifen. – mydogisbox

Antwort

1

Hat Ihr NSOpenGLView einen Ausgang haben, um Ihre AppDelegate zeigen? Wenn nicht, dann können Sie entweder eins machen oder die Antwort von here verwenden.

[(YourAppDelegate *)[[UIApplication sharedApplication] delegate] uploadFiles:array]

(Dies setzt voraus, dass AppDelegate bezieht sich eigentlich auf die Anwendung delegieren.)

Apple tutorial auf Interface Builder Grundlagen (einschließlich der Verbindungsstellen).

+0

Danke für deine Antwort @mydogisbox, aber wir sind hier auf Mac OS X - also nehme ich an, du meintest 'NSApplication' statt' UIApplication'? Außerdem suche ich nach einer Methode, um das Array in Interface Builder (und nicht die AppDelegate oder die NSOpenGLView) zu verbinden. Programmatisch kann dein Vorschlag funktionieren, ich werde das ausprobieren. – DocJones

+0

Sie meinen, Sie möchten etwas, um die Interface Builder-Datei zu bearbeiten? – mydogisbox

+0

Nein, nicht zu bearbeiten. Ich möchte die Objekte von AppDelegate und MyOpenGLView verbinden, so dass ich von MyOpenGLView aus auf ein Mitglied von AppDelegate zugreifen kann. – DocJones