2016-08-20 10 views
5

Po dodaniu właściwości łańcuchowej o nazwie Unique Identifier pojawia się następujący komunikat o błędzie: Enitiy/NSManagedObject o nazwie Labels. Jednak nie jest to Unique Identifier, z którym zadowolony jest zadowolony.Błąd po aktualizacji podstawowego modelu danych - Nierozpoznany selektor wysłany do instancji

2016-08-20 02: 20: 08,394 w [22499: 8730414] - [AN.Labels teczki] nierozpoznany selektor wysyłane do przykładu 0x7ffe907e1a80 20.08.2016 02: 20: 08,405 w [ 22499: 8730414] *** zakończenie aplikację spowodowane nieprzechwyconego wyjątku 'NSInvalidArgumentException', powód: '- [AN.Labels foldery]: nierozpoznany selektor wysyłane do instancji 0x7ffe907e1a80'

oto moja klasa NSManagedObject

class Labels: NSManagedObject { 

    @NSManaged var title: String? 
    @NSManaged var details: String 
    @NSManaged var date: NSDate? 
    @NSManaged var uniqueIdentifier: NSString? 

    @NSManaged var arrayOfFolders: [Folders] 
    @NSManaged var folder: Folders? 
    @NSManaged var folders: NSSet 

    override func awakeFromFetch() { 
     super.awakeFromFetch() 
     self.regenerateFolders() 
    } 

    func regenerateFolders() { 
     let date = NSSortDescriptor(key: "date", ascending: false) 
     if let array = folders.sortedArrayUsingDescriptors([date]) as? [Folders] { 
      self.arrayOfFolders = array 
     } 
    }  
} 

Upewniłem się, że aplikacja korzysta z nowego modelu coreData i mają następujące elementy w moim stosie CoreData. Nie miałem tego problemu od pewnego czasu, ponieważ moja aplikacja automatycznie aktualizuje się, aby używać najnowszego modelu danych podstawowych.

var storeDirectoryURL: NSURL { 
    return try! NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true) 
} 

var storeURL: NSURL { 
    return self.storeDirectoryURL.URLByAppendingPathComponent("SingleViewCoreData.sqlite") 
} 

func setupCoreData() { 
    let modelURL = NSBundle.mainBundle().URLForResource("AN", withExtension: "momd") 
    let model = NSManagedObjectModel(contentsOfURL: modelURL!) 

    try! NSFileManager.defaultManager().createDirectoryAtURL(self.storeDirectoryURL, withIntermediateDirectories: true, attributes: nil) 

    let coordinator = NSPersistentStoreCoordinator(managedObjectModel: model!) 
    let options = [NSMigratePersistentStoresAutomaticallyOption: true, NSInferMappingModelAutomaticallyOption: true] 
    try! coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: self.storeURL, options: options) 

    managedObjectContext = NSManagedObjectContext(concurrencyType: .MainQueueConcurrencyType) 
    managedObjectContext.persistentStoreCoordinator = coordinator 
    managedObjectContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy 
} 

Czy ktoś ma jakieś sugestie?

Odpowiedz

3

Sprawdź relację między etykietami i folderami w podstawowym modelu danych. Możesz mieć odwrotną relację o nazwie coś innego niż Etykiety.