Как исправить, что версия macOS равна 10.11, но CoreData поддерживает NSFetchRequest для версий 10.12 и выше

#ios #swift #nsfetchrequest

#iOS #быстрый #nsfetchrequest

Вопрос:

Я работаю над macOS приложением и использую CoreData для хранения в базе данных. Приложение предоставит поддержку от OS X 10.11 и выше. На OS X 10.12 компьютере приложение работает нормально, но OS X 10.11 оно не работает до того, как я вызову метод хранения базы данных, который обновляется в пользовательском интерфейсе, например, установить текст метки подобным образом. После вызова этого метода CoreData пользовательский интерфейс также не обновляется. Я выясняю из-за приведенного ниже кода

 let fetchRequest:NSFetchRequest<Entity> = Entity.fetchRequest()

do {
   let  dbDisc = try managedObjectContext.fetch(fetchRequest) as! [Entity]        
}
  

пожалуйста, скажите мне, каково решение для этого?

Ответ №1:

Для iOS я использую этот код для проверки текущей версии:

 if (@available(iOS 10.0, *)) {}
  

Я думаю, что для macOS это может быть тот же синтаксис. Смотрите этот пост

Комментарии:

1. Я пробовал это также не работает. Я уверен, что проблема с NSFetchRequestResult (доступно 10.12 ). Итак, я попробовал разрешить fetchRequest = NSFetchRequest(EntityName: «Cart»), но возникла проблема типа «не удалось определить общий метод», и он был вынужден измениться как «разрешить fetchRequest:NSFetchRequest<Entity> = Entity. fetchRequest()». Не знаю, как решить