Xcode 6 Beta 4: Использование неразрешенного идентификатора 'NSFetchedResultsChangeInsert'

только что установил Xcode 6 Beta 4, и этот ранее компилирующий код теперь терпит неудачу с «Unresolved Identifier» на каждом коммутаторе NSFetchedResultsChangeType. Я проверил примечания к выпуску и, конечно, пробрался сюда, чтобы узнать, не испытал ли кто-нибудь еще этого, но до сих пор ничего не появилось. Любая информация оценена!

благодаря!

func controller(controller: NSFetchedResultsController, didChangeSection sectionInfo: NSFetchedResultsSectionInfo, atIndex sectionIndex: Int, forChangeType type: NSFetchedResultsChangeType) { println("Running CoreDataTVC.controllerDidChangeSection") switch type { case NSFetchedResultsChangeInsert: self.tableView.insertSections(NSIndexSet(index: sectionIndex), withRowAnimation: .Fade) case NSFetchedResultsChangeDelete: self.tableView.deleteSections(NSIndexSet(index: sectionIndex), withRowAnimation: .Fade) default: return } } 

2 Solutions collect form web for “Xcode 6 Beta 4: Использование неразрешенного идентификатора 'NSFetchedResultsChangeInsert'”

Когда перечисление

 typedef NS_ENUM(NSUInteger, NSFetchedResultsChangeType) { NSFetchedResultsChangeInsert = 1, NSFetchedResultsChangeDelete = 2, NSFetchedResultsChangeMove = 3, NSFetchedResultsChangeUpdate = 4 } ; 

сопоставляется с Swift, общий префикс автоматически удаляется из значений перечисления:

 enum NSFetchedResultsChangeType : UInt { case Insert case Delete case Move case Update } 

Сравните «Взаимодействие с API-интерфейсами C» в документации «Использование Swift with Cocoa и Objective-C».

Таким образом, ваш код должен выглядеть так

 func controller(controller: NSFetchedResultsController, didChangeSection sectionInfo: NSFetchedResultsSectionInfo, atIndex sectionIndex: Int, forChangeType type: NSFetchedResultsChangeType) { switch type { case .Insert: self.tableView.insertSections(NSIndexSet(index: sectionIndex), withRowAnimation: .Fade) case .Delete: self.tableView.deleteSections(NSIndexSet(index: sectionIndex), withRowAnimation: .Fade) default: return } } 

Совет. Если вы создадите приложение «Master-Detail» в Xcode с «Использовать основные данные», вы получите образец кода, с которого вы можете начать.

Перечисление NSFetchedResultsChangeType определяется внутри NSFetchedResultsController.

 enum NSFetchedResultsChangeType : UInt { case Insert case Delete case Move case Update } 

Чтобы получить доступ к значениям перечисления, вы можете использовать тип перечисления, за которым следует случай, подобный этому:

 switch type { case NSFetchedResultsChangeType.Insert: self.tableView.insertSections(NSIndexSet(index: sectionIndex), withRowAnimation: .Fade) case NSFetchedResultsChangeType.Delete: self.tableView.deleteSections(NSIndexSet(index: sectionIndex), withRowAnimation: .Fade) default: return } 

Поскольку вы знаете тип типа NSFetchedResultsChangeType вы также можете опустить это из случаев коммутатора и просто использовать case .Insert: и case .Delete:

  • Alcatraz в XCode 7.1
  • использование @import при отключении модулей
  • Xcode 8 Как использовать классы генерации базового кода Gen в Objective-C?
  • Как исправить ошибку ibtool с кодом выхода 255
  • Должен ли я вручную сохранять файл managedObjectContext для NSFetchedResultsController, если я изменяю какой-либо атрибут?
  • Xcode 4.3.2 Кнопка IBAction Thread 1: Ошибка точки останова 1.1
  • приложение не видно в itunes connect после успешной загрузки с xcode
  • cant hide statusbar в ios с помощью xcode phonegap
  • Xcode создает представление с переходом по клику
  • Инструмент VM tracker пуст
  • динамически размер высоты элементов tableView
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.