Ich habe ein NSMutablearray, das ich in der Datei speichern möchte, wenn die Anwendung den Hintergrund eingibt. Ich habe meine NSMutableArray in meinem Viewcontroller.h als Instanz Variable deklariert:Wie greife ich auf eine View Controller-Instanzvariable von App-Delegaten zu
#import <UIKit/UIKit.h>
NSString *docPath();
@interface ViewController : UIViewController<UITableViewDataSource>
{
UITableView *taskTable;
UITextField *taskField;
UIButton *insertButton;
NSMutableArray *tasks;
}
- (void)addTask:(id)sender;
@end
Jetzt muss ich diese Variable zugreifen in meinem AppDelegate wie so:
- (void)applicationDidEnterBackground:(UIApplication *)application {
[tasks writetofile:docPath() atomically:YES];
}
Ich bin ziemlich neu in diesem und Selbst unterrichtet. Ich dachte, eine Art #import "Viewcontroller.h" im AppDelegate würde helfen, aber nicht sicher, wie es weitergeht. Jede Hilfe wird geschätzt.
Ist-View-Controller die eine zur Zeit angezeigt? Wenn nicht, gibt es mehr als einmal gleichzeitig eine Instanz davon. – trojanfoe
Ja, der View-Controller wird angezeigt und es gibt nur eine Instanz von Tasks. – Paul
Sie sollten niemals auf eine Instanzvariable einer Klasse von einer anderen zugreifen. Instanzvariablen sollten immer privat sein. Eine Klasse sollte eine geeignete öffentliche Schnittstelle (Methoden und Eigenschaften) bereitstellen, auf die andere Klassen zugreifen können. – rmaddy