Kontaktbuch mit Gruppen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Kontaktbuch mit Gruppen

    Guten Abend ihr Lieben :),

    ich bin ganz neu hier und würde mich über eure Unterstützung sehr freuen.

    Zu meinem Problem:

    Ich habe eine TableViewController Application erstellt. Wenn ich nun die App Starte und einen Button in der ersten View drücke, passiert nix.

    Folgende Fehlermeldung kommt in der Konsole:



    2014-03-27 22:11:38.850 MyContactBook[1591:60b] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<MyDetailGroupViewController 0x175c5580> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key group.'

    *** First throw call stack:

    (0x2dc46fd3 0x384bdccf 0x2dc46ce9 0x2e58af23 0x2e59cb55 0x2dbb717b 0x307d1ec3 0x3072a62b 0x30586bed 0x3046730d 0x30467289 0x30510937 0x3054d4b3 0x3054bdeb 0x3054ae55 0x3072dcab 0x30498057 0x305fec65 0x30498057 0x30497ff7 0x30497fd1 0x30483737 0x30497a4f 0x30497721 0x304926eb 0x304678ed 0x30465f97 0x2dc1225b 0x2dc1172b 0x2dc0ff1f 0x2db7af4f 0x2db7ad33 0x32ad3663 0x304c616d 0x6e9c9 0x389caab7)

    libc++abi.dylib: terminating with uncaught exception of type NSException

    (lldb)





    Zudem öffnet sich main.m

    Quellcode

    1. #import <UIKit/UIKit.h>
    2. #import "agAppDelegate.h"
    3. int main(int argc, char * argv[])
    4. {
    5. @autoreleasepool {
    6. return UIApplicationMain(argc, argv, nil, NSStringFromClass([agAppDelegate class])); <--- grüner Verweis Thread 1: signal SIGABRT
    7. }
    8. }
    Alles anzeigen


    Nach sehr langer Suche, habe ich mich entschlossen mal hier nach Hilfe zu bitten.

    Vielen Dank schonmal :)
  • Hallo ihr Lieben,

    @gritsch vielen Dank für deine Hilfe. Ich kann mir aber nicht erklären wieso so eine property fehlen sollte.

    @ MCDan

    Das hier ist Dabei rausgekommen:

    Quellcode

    1. //
    2. // main.m
    3. // MyContactBook
    4. #import <UIKit/UIKit.h>
    5. #import "agAppDelegate.h"
    6. int main(int argc, char * argv[])
    7. {
    8. @autoreleasepool {
    9. return UIApplicationMain(argc, argv, nil, NSStringFromClass([agAppDelegate class]));
    10. }
    11. }
    Alles anzeigen
  • einfach mal implementieren in der besagten datei.
    kannst ja selbst ausprogrammieren die methoden und dann einen breakpoint drauf setzen.
    dann wirst du schon sehen wer sie verwendet.
    keine ahnung wie die interface-dateien inzwischen gepsiechert werden, vielliecht ist es ja xml, dann kannst du mit nem texteditor reinshauen und danach suchen...
  • Absturz nach drücken des Save-Buttons

    Das hat jetzt aber gedauert, ich habe hinbekommen! Danke für eure Hilfe!

    So jetzt stehe ich aber vor einem neuem Problem:


    Meine App soll ein ganz einfach aufgebautes Adressbuch sein!

    Wenn die App gestartet wird öffnet sich die erste View (Navigation - Controller -> TableViewController)

    In dieser View gibt es einen Add (+) Button -> drückt man diesen, gelangt man zu einem ViewController.

    In Diesem View Controller sind zwei Buttons vorhanden -> Back und Save -> und ein Textfeld, in dem man den Namen der Gruppe eingeben kann.

    Tut man dies und drückt auf den Save Button -> kommt leider ein Fehler ?? Es ist zum heulen :(.. Ich hab schon so einiges ausprobiert aber ich komm einfach nicht drauf. An dieser Stelle erstmal ein "tut mir leid" für die blöden Fragen die ich stelle.


    Folgendes wird in der Konsole ausgegeben:



    Quellcode

    1. 2014-03-28 19:57:02.270 MyContacts[3292:60b] Unknown class MyGruppeViewController in Interface Builder file.
    2. 2014-03-28 19:57:05.358 MyContacts[3292:60b] Unresolved error Error Domain=NSCocoaErrorDomain Code=134100 "The operation couldn’t be completed. (Cocoa error 134100.)" UserInfo=0x1466a940 {metadata={
    3. NSPersistenceFrameworkVersion = 479;
    4. NSStoreModelVersionHashes = {
    5. Contacts = <e614f393 6f7afdde 2dea8973 96d9b3e4 33cbbc9d f795be6f 2677dbc7 df420293>;
    6. };
    7. NSStoreModelVersionHashesVersion = 3;
    8. NSStoreModelVersionIdentifiers = (
    9. ""
    10. );
    11. NSStoreType = SQLite;
    12. NSStoreUUID = "D4B558D6-C655-4E0F-A838-C5643FDEC5F8";
    13. "_NSAutoVacuumLevel" = 2;
    14. }, reason=The model used to open the store is incompatible with the one used to create the store}, {
    15. metadata = {
    16. NSPersistenceFrameworkVersion = 479;
    17. NSStoreModelVersionHashes = {
    18. Contacts = <e614f393 6f7afdde 2dea8973 96d9b3e4 33cbbc9d f795be6f 2677dbc7 df420293>;
    19. };
    20. NSStoreModelVersionHashesVersion = 3;
    21. NSStoreModelVersionIdentifiers = (
    22. ""
    23. );
    24. NSStoreType = SQLite;
    25. NSStoreUUID = "D4B558D6-C655-4E0F-A838-C5643FDEC5F8";
    26. "_NSAutoVacuumLevel" = 2;
    27. };
    28. reason = "The model used to open the store is incompatible with the one used to create the store";
    29. }
    30. (lldb)
    Alles anzeigen


    Auf folgendes wird in den Breakpoint-Meldungen hingewiesen:

    Siehe Anhang.

    Weiter zur App-Beschreibung:

    Ist eine Gruppe angelegt -> klick auf Gruppe und man gelangt zur nächsten TableView - in dieser View ist ein weiterer Add (+) button vorhanden, sowie ein Back-Button mit dem man wieder zurück zur GruppenTableView gelangt.

    Klickt man auf den Add (+) Button gelangt man zu der View, in der man Kontaktdaten eingeben kann wie Name, Telefonnummer etc. -> In dieser View gibt es ebenfalls einen Back und Save Button.

    Soweit bin ich aber noch nicht gekommen.

    Meine Vermutung:

    Kann es sein, das in der AppDelegate etwas nicht korrekt definiert ist, bzw. die App weiss nicht wo sie die eingegeben Daten des Textfeldes absichern soll?

    Vielen Dank vorab für euere Bemühungen :love:
    Dateien
    • Breakpoint9.png

      (291,35 kB, 254 mal heruntergeladen, zuletzt: )
    • Breakpoint8.png

      (592,14 kB, 256 mal heruntergeladen, zuletzt: )
    • Breakpoint7.png

      (458,18 kB, 257 mal heruntergeladen, zuletzt: )
    • Breakpoint6.png

      (495,93 kB, 257 mal heruntergeladen, zuletzt: )
    • Breakpoint5.png

      (486,84 kB, 258 mal heruntergeladen, zuletzt: )
    • Breakpoint4.png

      (343,66 kB, 270 mal heruntergeladen, zuletzt: )
    • Breakpoint3.png

      (442,54 kB, 257 mal heruntergeladen, zuletzt: )
    • Breakpoint2.png

      (257,69 kB, 260 mal heruntergeladen, zuletzt: )
    • Breakpoint1.png

      (139,23 kB, 273 mal heruntergeladen, zuletzt: )
  • reason = "The model used to open the store is incompatible with the one used to create the store";​


    Du benutzt Core Data, und hast seit dem letzten Lauf das Datenmodell geändert. Nun passen die beim letzten Mal gespeicherten Daten nicht mehr zur (neuen) Definition. Entweder das Datenmodell migrieren oder (in der Entwicklungsphase) den persistenten Store einfach wegschmeißen...

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Danke für die Antwort Mattes,

    ich bin leider totale Anfänger, was meinst du mit das Datenmodell migrieren oder den persistenten Store wegschmeißen.

    Ich habe den mal in der AppDelegate auskommentiert. Es kam aber danach folgende Fehlermeldung beim Speichern in der App:

    Quellcode

    1. 2014-03-28 20:58:45.758 MyContacts[3310:60b] Unknown class MyGruppeViewController in Interface Builder file.
    2. 2014-03-28 20:58:50.635 MyContacts[3310:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name 'Contacts''
    3. *** First throw call stack:
    4. (0x2dc46fd3 0x384bdccf 0x2d9984e3 0x2d9c2fef 0x574a5 0x30498057 0x305fec65 0x30498057 0x30497ff7 0x30497fd1 0x30483737 0x30497a4f 0x30497721 0x304926eb 0x304678ed 0x30465f97 0x2dc1225b 0x2dc1172b 0x2dc0ff1f 0x2db7af4f 0x2db7ad33 0x32ad3663 0x304c616d 0x53975 0x389caab7)
    5. libc++abi.dylib: terminating with uncaught exception of type NSException
    6. (lldb)
    Alles anzeigen
  • Als totaler Anfänger sollest Du Dir vielleicht ein Projekt suchen, das nicht zu viele komplexe Themen auf einmal beinhaltet. Andernfalls würde ich befürchten, dass der Frust-Level schnell erreicht wird. Aber das wäre nur mein Ansatz...

    Ansonsten hilft es nicht, einfach etwas auszukommentieren: Ich nehme einmal an, in deinem Core Data Store sind noch keinen wichtigen Daten gespeichert, oder? Dann lösche die entsprechende Datei im Simulator oder die App auf dem Device: So wird der Store neu mit dem aktuellen Datenmodell angelegt. Zum Thema Migration gibt es einige Kapitel in Apple's Core Data Dokumentation.

    Matts
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • CoreData ist nicht wirklich ein Freund wenn es um das Lernen von Grundlagen geht.

    Bau die App erstmal mit einem anderen Datenmodell. Schreib zum Beispiel die Daten alle in ein Array und speichere dieses in den UserDefaults.
    Mach aus dem Array eine eigenes Klasse z.B.

    Quellcode

    1. @interface Adressen : NSObject
    2. @property (strong) NSMutableArray *adressen;
    3. @end


    Für das Lesen und Speichern baust Du die dann eigene Methoden loadAdressen und saveAdressen iin diese Klasse. Damit kannst du später, wenn die App mit den Userdefaults klappt ganz einfach in dieser Klasse die beiden Methoden ändern so das sie statt den userdefaults CoreData verwenden.

    Aber du hast erstmal einen Erfolg

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Guten Abend ihr Lieben :)

    nach langer zeit, ergab sich heute wiedermal zeitlich die Möglichkeit an meiner app weiter zu "arbeiten".

    Aktueller Stand:

    Die App funktioniert zu 98% :(.

    Das Anlegen und speichern von Gruppen ist möglich.

    In der Gruppe, Kontakte anlegen und speichern funktioniert auch soweit :).

    So, jetzt gibt es da aber eine Kleinigkeit die nicht vorkommen sollte.

    Das Problem tritt auf, wenn ich eine neue Gruppe anlege, sind in der neuen Gruppe die Kontakte der anderen Gruppen vorhanden.

    Somit kann ich leider keine individuellen Gruppen anlegen :(.

    Ich hoffe ihr habt einen heißen Tipp für mich :) .

    Vielen Dank schonmal :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Bluemchen ()