ios - 更新核心数据模型后出错 - 无法识别的选择器发送到实例

标签 ios objective-c swift core-data

将名为 Unique Identifier 的字符串属性添加到名为 LabelsEnitiy/NSManagedObject 后,出现以下错误>。然而,编译器不满意的不是 Unique Identifier

2016-08-20 02:20:08.394 AN[22499:8730414] -[AN.Labels folders]: unrecognized selector sent to instance 0x7ffe907e1a80 2016-08-20 02:20:08.405 AN[22499:8730414] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AN.Labels folders]: unrecognized selector sent to instance 0x7ffe907e1a80'

这是我的 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
        }
    }    
}

我已确保该应用程序使用新的 coreData 模型并在我的 CoreData 堆栈中包含以下内容。我已经有一段时间没有遇到这个问题了,因为我的应用会自动更新以使用最新的核心数据模型。

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   
}

有人有什么建议吗?

最佳答案

检查核心数据模型中标签和文件夹之间的关系。您可以将反向关系命名为标签以外的名称。

关于ios - 更新核心数据模型后出错 - 无法识别的选择器发送到实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39049671/

相关文章:

swift - 快速将 4 个字节的 Float 给出一个意想不到的小结果

ios - 仅在按住按钮时扫描条形码

ios - 如何在 swift 中启用 restkit 登录

ios - 在 Xamarin 中将 Tesseract 绑定(bind)为静态库

iOS 7 - 呈现模态视图 Controller 时收到警告消息

ios - 从本地化的 .strings 中检索存储的 plist 值的标题

ios - 如何禁用 CollectionView 的垂直手势识别器?

ios - 使用 LLVM 4.1 编译 Xcode 4.5 中的错误 255

ios - 如何在 switch 语句中使用谓词

objective-c - 在何处应用 UITableViewCell/自定义单元格外观的应用程序设置