Как использовать сгенерированные классы после того, как Xcode сделал «Определение класса» для базовых данных? - PullRequest
0 голосов
/ 23 января 2020

Я использую Xcode 11.3.1 и выбираю определение класса, например, Entity в новом проекте.

enter image description here

Я не могу ссылаться на сгенерированный класс. Даже после того, как я нажму build

let x = Project()
Use of unresolved identifier 'Project'

1 Ответ

1 голос
/ 26 января 2020

Невозможно воспроизвести. Я создал новое ванильное приложение Single View с Базовыми данными непосредственно из шаблона и создал одну сущность, такую ​​же, как ваша:

enter image description here

Затем я добавил одну строку код для просмотра контроллера viewDidLoad; он прекрасно компилируется:

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        let _ = Project()
    }

}

В ситуации, подобной вашей, хорошо подумать о как это работает. Генерация кода буквально генерирует код. Вы можете увидеть этот код, нажав Control на слово Project и выбрав Перейти к определению:

//  Project+CoreDataClass.swift
//  
//
//  This file was automatically generated and should not be edited.
//

import Foundation
import CoreData

@objc(Project)
public class Project: NSManagedObject {

}

Если вы не видите ничего подобного, выйдите из Xcode, удалите содержимое папки DerivedData, снова откройте проект, дождитесь индексации до конца sh и повторите попытку.

Если все еще не работает, переключите Codegen на Manual / Нет в редакторе моделей и сгенерируйте файл вручную:

enter image description here

После прохождения диалоговых окон вы увидите сгенерированные файлы прямо справа в навигаторе вашего проекта:

enter image description here

В этот момент ваш проект обязательно скомпилируется!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...