2016-06-23 3 views
5

Die Funktion unten verwendet wird, um Daten zu erhalten TableviewSwift 3 Core Data Ausgabe holen

func fetchProfiles() -> Array<User> { 
    var users: Array<User> = [] 
    let fetchRequest: NSFetchRequest<Profile> = Profile.fetchRequest() 
    let fetchedData = try! context.fetch(fetchRequest) 
    if (!fetchedData.isEmpty) { 
     print(fetchedData) 
     for i in 0...fetchedData.count { 
      var user: User = User() 
      user.userName = fetchedData[i].profileName 
      user.userSurname = fetchedData[i].profileSurname 
      user.userPhoto = fetchedData[i].profilePhoto 
      users.append(user) 
     } 
     return users 
    } 
    else { 
     return users 
    } 
} 

"User" ist eine einfache Struktur. "Profil" ist eine Entität in Core Data. Ich erstelle ein Array von Strukturen, um sie für Zellen in der Tabelle zu verwenden. Code hat keine Fehler (für xCode). Wenn es keine abgerufenen Daten ist, überspringt es Array anhängt, aber wenn es einige Informationen ist, stürzt App mit Fehler:

fatal error: NSArray element failed to match the Swift Array Element type

+2

Versuchen Sie, diese Zeile bei Abrufanforderung zu ersetzen, *** lassen Sie fetchedData = versuchen! context.executeFetchRequest (fetchRequest) als! [AnyObject] *** – Suresh

+0

@Suresh xCode sagt: "Wert des Typs NSFetchRequest kann nicht in den erwarteten NSFetchRequest " –

+0

konvertiert werden Ersetzen Sie Ihre let fetchRequest: NSFetchRequest = Profile.fetchRequest(); Zeile mit *** let fetchRequest: NSFetchRequest = NSFetchRequest (entityName: "Profil") *** hier sollte "Profil" Ihr Entity-Name sein, stellen Sie sicher, dass Sie es als String übergeben – Suresh

Antwort

1

Aus unbekannten Gründen gab es Probleme mit Auto-Header von Core Data Einheiten erzeugt. Ich löschte nur alle Dateien aus dem Ordner:

/Users/user/Library/Developer/Xcode/DerivedData/MyApp/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/DerivedSources/CoreDataGenerated

dann gereinigt mein Projekt mit

command+shift+k

mein Kerndatenmodell für einige mögliche Probleme geprüft und das gesamte Projekt neu aufgebaut. Magie.