CoreData: 'Unable to parse the format string...'

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

  • CoreData: 'Unable to parse the format string...'

    Hey,

    ich habe folgendes Problem:

    Quellcode

    1. *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "list == <WTList: 0x835b4f0> (entity: WTList; id: 0x835b6d0 <x-coredata:///WTList/t2482DE50-8231-4182-841C-E2920A8D11DC3> ; data: {
    2. title = TestList;
    3. })"'


    Code, der das ausließt ist folgender:

    Quellcode

    1. - (void)deleteList:(WTList *)list
    2. {
    3. NSError *error;
    4. // fetch related tasks to delete them too...
    5. NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"WTTask"];
    6. NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"list == %@", list]];
    7. [request setPredicate:predicate];
    8. NSArray *result = [context executeFetchRequest:request error:&error];
    9. // delete the tasks
    10. if (error == nil) {
    11. for (WTTask *task in result) {
    12. [self deleteTask:task];
    13. }
    14. }
    15. [context deleteObject:list];
    16. if (self.delegate) {
    17. [self.delegate updatedDataPool];
    18. }
    19. }
    20. - (void)deleteTask:(WTTask *)task
    21. {
    22. [context deleteObject:task];
    23. if (self.delegate) {
    24. [self.delegate updatedDataPool];
    25. }
    26. }
    Alles anzeigen


    Der crash tritt durch das verwendete NSPredicate auf, mit dem ich versuche zu prüfen, ob das Attribut 'list' meines Entities 'WTTask' der Liste entspricht, die ich der Methode reingebe.

    Jemand eine Idee wie sich der Feler beheben lässt, bzw. einen besseren Lösungsvorschlag?

    Danke.
    Man kann alles schaffen. Man muss es nur wollen ;)
    www.regetskcob.github.io
  • Wie Thallius schon vermutet hat, liegt es an der Erzeugung Deines Predikats:

    Quellcode

    1. [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"list == %@", list]];
    Der Teilausdruck [NSString stringWithFormat:@"list == %@", list] erzeugt einen unsinnigen Ausdruk auf der rechten Seite vom Gleichheitszeichen. Es muss also

    Quellcode

    1. [NSPredicate predicateWithFormat:@"list == %@", list];
    lauten.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    Wie Thallius schon vermutet hat, liegt es an der Erzeugung Deines Predikats:

    Quellcode

    1. [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"list == %@", list]];
    Der Teilausdruck [NSString stringWithFormat:@"list == %@", list] erzeugt einen unsinnigen Ausdruk auf der rechten Seite vom Gleichheitszeichen. Es muss also

    Quellcode

    1. [NSPredicate predicateWithFormat:@"list == %@", list];
    lauten.
    Okay das teste ich nochmal. Danke euch beiden. @Thallius... da hab ich wohl falsch gelesen und dachte du hast nur das 'l zum 'L' geändert... sry.
    Man kann alles schaffen. Man muss es nur wollen ;)
    www.regetskcob.github.io