Наведені вище відповіді я вважаю дуже корисними, особливо відповідь Ніка Локвуда.
Я просто перейменував пару папок у 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 та решта вашого коду). Ніколи не робіть цього за допомогою додатка в реальному часі - або якщо ви це зробите, переконайтесь, що правильно мігрувати основні дані, виконуючи це.