• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Table View + Navigation Controller

Answer

Wohlschmecker aus Vierlanden
Registriert
25.06.09
Beiträge
238
Guten Abend Gemeinde,
ich hab ein kleines großes Problem. Google und mein Obj-C Buch helfen mir da auch nicht weiter. Ich programmiere noch nicht so lange mit Obj-C und dem SDK und mach ich es wie immer mit learning by doing & Tutorials. Ich wollte nun einfach ein kleines (sinnloses) App erstellen, dass eine TabBar besitzt und in jedem Tab eine ListView hat, die auf eine Detailansicht verweist. Nun hat Google ein sehr interessantes Tutorial ausgespuckt in dem alles sehr schön und verständlich erklärt wird (http://www.youtube.com/watch?v=LBnPfAtswgw). Das Video ist von Juni 2009 aber es hat bis zum Schluss alles geklappt. Da kommen dann folgende zwei Fehler:
.../Classes/BooksTableViewController.m:173: error: expected ']' before 'delegate'
.../Classes/BooksTableViewController.m:175: error: 'delegate' undeclared (first use in this function)

In er didSelectRowAtIndexPath steht das drin:
Code:
NSInteger row=[indexPath row];
	if (self.bookDetailViewController == nil) {
		BookDetailViewController *aBookDetail = [[BookDetailViewController alloc] initWithNibName:@"bookDetailView" bundle:nil];
		self.bookDetailViewController = aBookDetail;
		[aBookDetail release];
	}

	bookDetailViewController.title=[NSString stringWithFormat:@"%s", [booksArray objectAtIndex:row]];
	
	UIBooksAppDelegate *Delegate [[UIApplication sharedApplication] delegate]; //ERROR #1 - expected ']' before 'delegate'
	
	[delegate.BooksNavController pushViewController:bookDetailViewController animated:YES]; //ERROR #2 - delegate' undeclared (first use in this function)

Der zweite Basiert nun auf dem Ersten wenn ich das richtig sehe? Was mache ich denn falsch? Im Anhang ist das ganze Projekt. Ich hab auch schon einiges ausprobiert (hab schon Stunden damit verbracht das hinzubiegen) also nicht wundern wenn die Funktion "didSelectRowAtIndexPath" mit irgendwelchen mistigen Kommentaren vollgemüllt ist ;-)
Würde mich über Hilfe freuen denn das ist echt frustrierend wenn man schon an solchen "Kleinigkeiten" scheitert :-/

MfG ein nachwuchs Entwickler

PS: Bitte nicht über den Namen des Projekts wundern
 

Anhänge

Hallo!

Ein wenig Hilfe zur Selbsthilfe:

Objective C ist Case-Sensitive. "Delegate" ist dort was ganz anderes als "delegate" oder "deLegate".
Wenn Du Dir ein Objekt deklarierst und in der selben Zeile erstellst, musst du dem deklariertem Objekt was zuweisen. Zuweisungen funktionieren via "=".

Versuch weiter dran rumzubasteln, ich denke, du bist nicht weit entfernt von einem funktionierendem Programm. :-)
 
UIBooksAppDelegate *Delegate [[UIApplication sharedApplication] delegate]; //ERROR #1 - expected ']' before 'delegate'

[delegate.BooksNavController pushViewController:bookDetailViewController animated:YES]; //ERROR #2 - delegate' undeclared (first use in this function)

Naja das erste heißt bei dir Delegate und in der zweiten Methode willst du auf delegate eine message schicken nur ist Delegate nicht das selbe wie delegate

Zweitens musst du einer Variable was zuweisen, was du natürlich nicht in dem ersten Teil machst.

Besser ist das hier (Variablennamen haben per Konvention kleine Anfangsbuchstaben)

Code:
UIBooksAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
	
[delegate.BooksNavController pushViewController:bookDetailViewController animated:YES];
 
Schonmal Danke für die Antworten. Hab jetzt das Stück Code von Miralem23 eingefügt und es kommt ".../Classes/BooksTableViewController.m:180: error: request for member 'BooksNavController' in something not a structure or union". Damit hab ich gleich mal Google gefüttert und auf iphonesdk.com ein Thema gefunden in welchem ich gelesen hab, dass ich noch irgendwas includieren bzw. importieren muss. Werd da morgen weiter machen und jetzt erstmal was Essen und meine Katze verwöhnen.