Структуры Swift, определенные в отдельных файлах, нуждаются в инициализаторах? - PullRequest
0 голосов
/ 13 сентября 2018

Я определил простую структуру в отдельном файле swift следующим образом:

import AppKit

//Declaring a new struct for Company

public struct CompanyStruct {
    var idCompany: Int
    var company: String
    var compType: String
}

Однако, когда я пытаюсь использовать эту структуру, она находит структуру, если делать:

var c = CompanyStruct

, и я могу выбрать его, но при открытии скобки мне не выдается никаких параметров. Если я инициализирую структуру как:

import AppKit

//Declaring a new struct for Company

public struct CompanyStruct {
    var idCompany: Int
    var company: String
    var compType: String


    init(idCompany: Int, company: String, compType: String) {
        self.idCompany = idCompany
        self.company = company
        self.compType = compType
    }
}

Тогда все работает нормально, если я использую структуру, скажем, в View Controller

Я думал, что вам не нужно инициализировать структуры? Это потому, что я определяю структуру в отдельном файле?

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Нет, вам не нужно добавлять инициализатор для структуры. По умолчанию он имеет членский инициализатор. Это ошибка xCode. Когда это произойдет, просто используйте YourStruct.init, и он покажет автозаполнение. После этого вы можете удалить часть инициализации, и она будет работать для остальных структур.

0 голосов
/ 13 сентября 2018

Структуры имеют инициализатор по умолчанию, поэтому вы можете создать объект без передачи параметров.Вы можете создавать собственные инициализаторы, которые вы сделали.Одна вещь о структурах - вы не можете создать удобный инициализатор.

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