- Registriert
- 04.02.10
- Beiträge
- 8
Hallo Forumgemeinde
Ich wende mich an euch, da ich mit meinem Latein am Ende bin und hoffe ihr könnt mir mit meinem Problem helfen oder einen Hinweis liefern.
Ich beschreibe euch kurz was ich machen will und dann was nicht geht. Also folgendes:
Ich möchte eine Navigation mittels NSTableView aufbauen. Da es vorkommen kann, dass dieses Menü relativ gross ist, habe ich zwei Objekt-Klassen (Menu.m und Content.m) die mir dabei helfen sollen dieses Menü aufzubauen und ineinander zu verschachteln. Zuerst erstelle ich ein Menu-Objekt. Dieses enthält nur den Titel des Menüs und ein Array in welches die Content-Objekte hinein kommen. Die Content-Objekte enthalten dann alle weiteren Angaben für jede einzelne Zeile, wie zum Beispiel den Titel einer Zelle.
Hier seht ihr wie ich mein Content-Objekt mit all seinen Variablen initialisiere:
Wenn das Menü-Objekt mit all seinen Daten erstellt wurde lade ich den TableViewController in einen TabBarController:
Der mainViewController wird zuerst initialisiert und dann wird die Methode viewDidLoad aufgerufen. Und da mache ich folgendes:
Ich hole mir das Menü-Objekt das in einem Singleton gespeichert ist. Damit fülle ich nun das Array das ich für den TableView benötige um die Zeilen aufzubauen. Wenn die Methode fertig abgearbeitet ist, erwartet der TableView nun eine Eingabe, also eine Selektion einer Zeile und dann wird die Methode didSelectRowAtIndexPath aufgerufen. Und jetzt an dieser Stelle, nach dem Laden des Views und vor dem selektieren einer Zeile, werden in meinen Content-Objekten alle Strings released. Die Strings sind danach einfach nicht mehr da und ich kann auch nicht mehr darauf zugreifen. Ich kann mir das nicht erklären, denn ich habe diese Strings nicht in einem autorelease-Pool und ich mache auch keinen eigenen release der Strings. Hat jemand von euch schon eine ähnliche Erfahrung gemacht oder kann mir vielleicht einen Hinweis liefern wo ich nach dem Fehler suchen muss?
Ich wende mich an euch, da ich mit meinem Latein am Ende bin und hoffe ihr könnt mir mit meinem Problem helfen oder einen Hinweis liefern.
Ich beschreibe euch kurz was ich machen will und dann was nicht geht. Also folgendes:
Ich möchte eine Navigation mittels NSTableView aufbauen. Da es vorkommen kann, dass dieses Menü relativ gross ist, habe ich zwei Objekt-Klassen (Menu.m und Content.m) die mir dabei helfen sollen dieses Menü aufzubauen und ineinander zu verschachteln. Zuerst erstelle ich ein Menu-Objekt. Dieses enthält nur den Titel des Menüs und ein Array in welches die Content-Objekte hinein kommen. Die Content-Objekte enthalten dann alle weiteren Angaben für jede einzelne Zeile, wie zum Beispiel den Titel einer Zelle.
Hier seht ihr wie ich mein Content-Objekt mit all seinen Variablen initialisiere:
Code:
- (id)init {
if (self = [super init])
{
subMenu = YES;
imageOfContent = [[UIImage alloc] init];
descriptionOfContent = [[NSString alloc] init];
titleOfContent = [[NSString alloc] init];
subMenuOfContent = [[Menu alloc] init];
subViewOfContent = [[UIViewController alloc] init];
orderForNext = [[NSString alloc] init];
contentType = [[NSString alloc] init];
order = [[NSString alloc] init];
order2 = [[NSString alloc] init];
order3 = [[NSString alloc] init];
order4 = [[NSString alloc] init];
}
return self;
}
Wenn das Menü-Objekt mit all seinen Daten erstellt wurde lade ich den TableViewController in einen TabBarController:
Code:
// mainView dem TabBar Menü hinzufügen
mainViewController *main = [[mainViewController alloc] initWithTabBar];
localNavigationController = [[UINavigationController alloc] initWithRootViewController:main];
localNavigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
[localControllersArray addObject:localNavigationController];
[localNavigationController release];
[main release];
Der mainViewController wird zuerst initialisiert und dann wird die Methode viewDidLoad aufgerufen. Und da mache ich folgendes:
Code:
- (void)viewDidLoad {
[super viewDidLoad];
tableList = [[NSMutableArray alloc] init];
mainMenu = [[Store sharedInstance] getMenu];
for(int i=0 ; i<[mainMenu numberOfMenuContents] ; i++) {
[tableList addObject:[[[mainMenu getMenuContents] objectAtIndex:i] getTitleOfContent]];
}
}