Ошибка в моем вызове: неверная метка аргумента в вызове (есть ключ:, ожидаемый кодер:) - PullRequest
0 голосов
/ 02 мая 2019

Я получаю сообщение об ошибке в моем методе сортировки ячеек табличного представления в Swift.

Ошибка исходит от func loadDataFromDatabase() в строке:

let sortDescriptor = NSSortDescriptor(key: sortPriority)

Моя таблица Просмотр файла контроллера:

import UIKit
import CoreData

class noteTableViewController: UITableViewController {
    var notes = [Note]()

    var managedObjectContext: NSManagedObjectContext? {
        return (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    }

    func loadDataFromDatabase() {
        let settings = UserDefaults.standard

        let sortPriority = settings.string(forKey: Constants.kPriority)

        let context = appDelegate.persistentContainer.viewContext

        let request = NSFetchRequest<NSManagedObject>(entityName: "Note")

        let sortDescriptor = NSSortDescriptor(key: sortPriority)

        let sortDescriptorsArray = [sortDescriptor]

        request.sortDescriptors = sortDescriptorsArray

        do {
            notes = try context.fetch(request)
        } catch let errer as NSError {
            print("Could not fetch. \(error), \(error.userInfo)")
        }
    }
}

1 Ответ

0 голосов
/ 02 мая 2019

То, что вы делаете, путает компилятор с инициализатором init(coder:). Чтобы использовать нужный инициализатор, вам также необходимо указать аргумент ascending:

let sortDescriptor = NSSortDescriptor(key: sortPriority, ascending: true)
...