2016-06-27 2 views
0

Ich habe meine eigene Core Data-Funktion erhalten, die Daten abruft. Diese Funktion ist identisch mit meiner vorherigen, außer den Namen der Entitäten. Previous funktioniert großartig, aber dies schlägt mit dem Fehler EXC_BAD_ACCESS fehl, wenn ich versuche, Daten von fetchedData zu bekommen.Core Data EXC_BAD_ACCESS

func fetchGroups() -> Array<Group> { 
    var groups: Array<Group> = [] 
    let fetchRequest: NSFetchRequest<Public> = Public.fetchRequest() 
    fetchRequest.sortDescriptors = [SortDescriptor.init(key: "publicTitle", ascending: true)] 
    let fetchedData = try! context.fetch(fetchRequest) 
    if (!fetchedData.isEmpty) { 
     for i in 0...fetchedData.count-1 { 
      print(fetchedData[0]) 
      var group: Group = Group() 
      group.groupName = fetchedData[i].publicTitle 
      group.groupPhoto = fetchedData[i].publicPhoto 
      group.groupID = Int(fetchedData[i].publicID) 
      groups.append(group) 
     } 
     return groups 
    } 
    else { 
     return groups 
    } 
} 

Also, wenn es den Code in Klammern nach if (!fetchedData.isEmpty) ausführt, ist Array nicht leer. Warum scheitert es, Elemente zu bekommen?

P.S. fetchedData.count = 1; Aber fetchedData[0] = BIG CRASH! Zauber.

+0

Vielleicht bietet Kontext Array-Typen an dieser Stelle nicht. Array = [] zu var Gruppen: [Gruppe] = [Gruppe]() – Adolfo

+0

Wie wissen Sie, dass die einzelnen Felder der Gruppen wurden korrekt eingesetzt Könnten Sie var Gruppen ändern? – Feldur

+0

@ Adolfo es bricht beim Lesen abgeholtData, nicht Gruppen –

Antwort

3

Nach langer Forschung fand ich, dass das Problem zu wenig war, aber sehr schwer zu finden. Ich habe gerade meine coredata.xcdatamodeld-Datei überprüft und festgestellt, dass die öffentliche Entität keine Klassendefinition hat. Standardmäßig haben alle Entitäten nur Namen.