Как инициализировать переменную замыкания в swift? - PullRequest
1 голос
/ 11 февраля 2020

Это моя основная структура. и я пытаюсь перезвонить, когда listView выбирает и пункт.

struct Home: View {

    @State var selectdItem : Int = 0
    var body: some View {
        VStack{

            listView(onselecteditem: {selectdItem in
                self.selectdItem = selectdItem
            })
            resultView(selectedItem: self.$selectdItem)

        }

    }
}

И я хотел бы инициализировать мою переменную замыкания в init в этой структуре. это работает без init, но я должен использовать init.

struct listView : View
{
    var onSelectedItem : (Int) -> Void

    init(onselecteditem : (Int) -> Void) {

     // I would like to initialise onSelected closure variable here.   
    }

    var body : some View
    {
        List(1..<10)
        {
            item in
            Text("Item \(item)").onTapGesture {
                self.onSelectedItem(item)
            }
        }
    }
}

1 Ответ

1 голос
/ 11 февраля 2020

Вы можете инициализировать closure переменную как,

init(onselecteditem : @escaping (Int) -> Void) {
    self.onSelectedItem = onselecteditem
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...