Наведені вище відповіді я вважаю дуже корисними, особливо відповідь Ніка Локвуда.
Я просто перейменував пару папок у Xcode 8 і зіткнувся з ще двома проблемами: A) "відсутність помилок у робочій копії"
B) збої основних даних .
Як вирішити ці дві проблеми:
A) " відсутній у помилках робочої копії "
Наступна відповідь виявилася дуже корисною: Swift 3 / Xcode 8 Upgrade - 100 файлів DerivedData відсутні у помилках робочої копії
В основному Xcode 8 має суворий контроль над джерелами, що може призвести до вищезазначених помилок. Ти мусиш:
- Очистити отримані Xcode дані.
- Перейдіть до «Контроль джерела» та натисніть «Оновити статус».
- Перейдіть до «Контроль джерела» та натисніть «Завершити»; виберіть усі файли на лівій бічній панелі меню фіксації при здійсненні (правою кнопкою миші -> Вибрати всі).
- Ви, ймовірно, отримаєте помилку.
- Закрийте меню фіксації.
- Оновити статус.
- Закрийте проект, закривши Xcode.
- Повторно відкрийте проект, оновіть статус, виконайте знову.
- Цього разу комісія має спрацювати.
- Клацніть Проект -> Очистити.
Я припускаю, що ви вже ввімкнули контроль над джерелами. Якщо ви цього не зробили, або якщо ви застрягли, виконуючи мої вказівки, просто дотримуйтесь детальніших інструкцій у наданому посиланні.
B) Збої основних даних
Перейменування папок інколи видасть основні дані. Є кілька можливих причин, чому це так, і нижче наведено деякі виправлення, які я можу запропонувати:
Неправильне ім'я моделі AppDelegate . Так було в моїй ситуації. Перейдіть до свого AppDelegate і знайдіть let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME"). Переконайтесь, що ім’я правильне.
Надалі (через кілька років після цієї публікації, коли Apple знову змінить Основні дані) або якщо ви використовуєте старішу версію основних даних, уважно подивіться на AppDelegate. Напевно, там є щось фанкі, яке псує ваші основні дані.
Неправильна назва моделі в xcdatamodeld . Перейдіть до Finder і відкрийте .xcdatamodeld у текстовому редакторі.
Перевірте наступне:
<plist version="1.0">
<dict>
<key>_XCCurrentVersionName</key>
<string>YOUR CORE DATA MODEL NAME.xcdatamodel</string> <-- Make sure this is correct.
</dict>
</plist>
Більш докладно тут: файли моделі Core Data не завантажуються при перейменуванні
- Якщо дві вищезгадані речі не спрацьовують, спробуйте 1) видалити свою сутність, а потім додати іншу сутність, ідентичну або 2) видалити xcdatamodeld, а потім додати іншу модель даних, ідентичну (і переконайтесь, що ім'я нового xcdatamodeld відповідає що є у вашому AppDelegate та решта вашого коду). Ніколи не робіть цього за допомогою додатка в реальному часі - або якщо ви це зробите, переконайтесь, що правильно мігрувати основні дані, виконуючи це.