Автозаполнение Xcode 10 Struct Initializer не отображается - PullRequest
0 голосов
/ 26 сентября 2018

Я определяю мои viewModels в отдельных файлах как struct s, когда я пытаюсь создать экземпляр этого struct в другом файле, автозаполнение элементарного инициализатора не показывает ..

Эта проблема не была раньше (то есть Xcode 9) это ошибка в Xcode 10?

Я видел похожие вопросы, такие как Xcode не выполняет автозаполнение для каждого элемента инициализатора Struct

, но он устарел, и проблема была в Xcode 7 или 8, может быть.

Однако, если я помещу свой struct в файл, который я пытаюсь использовать, будет показано автозаполнение, в чем проблема?

Я также попытался .init после struct именибез удачи

Вот мои ViewModels:

struct ProfileModels {

    struct ViewModels {


        struct profile{
            let name : URL?
            let positionAndCountry : String?
            let briefDescription : String?
            let hotelInfo : HotelInfo?

        }

        struct HotelInfo{
            let hotelName : String?
            let roomClasification : String?
            let checkInDate : String?
            let checkOutDate : String?
            let isCheckInEarly : String?
            let isCheckInLate : String?
        }

    }
}

enter image description here

Обновление:

Как уже упоминалосьв комментариях он работает нормально, если вызывается метод init, однако иногда автозаполнение не отображается при вызове метода init ...

В любом случае для тех, кто хочет быстро обойти эту проблему, пока эта ошибка не будет устранена, - использоватьследующее:

  • Создать пустую структуру (пока не беспокойтесь об ошибке)

    пример: ProfileModels.viewModels.profile()

  • В новой строке вызовите структуру, и будет показано автозаполнение !, теперь вы можете удалить первую.

Я не знаю, почему это произошло, но, возможно, компилятор после первой строки распознает, что в этой структуре отсутствуют аргументы, поэтому они появятся, когда та же самая структура будет использована позже ...

1 Ответ

0 голосов
/ 17 июня 2019

В течение некоторого времени в Xcode была ошибка, из-за которой автозаполнение структур было бы странным.Классы никогда не сталкивались с этой проблемой, но я смог исправить автозаполнение, набрав .init после имени структуры, запустив автозаполнение, а затем удалив .init после.Надеюсь, это поможет

...