Как вы можете слабо зафиксировать несколько аргументов в закрытии Swift?

Есть ли способ слабо зафиксировать несколько аргументов в быстром закрытии? Я знаю, что это синтаксис для слабого захвата одного аргумента:

{ [weak arg]
    arg.doSomething()
}

Как я могу сделать это для двух объектов, которые я хочу слабо зафиксировать?


person phoganuci    schedule 18.01.2015    source источник


Ответы (1)


Из Expressions в "Языке программирования Swift" (курсив добавлен):

Выражение замыкания
...
Выражение замыкания может явно указывать значения, которые оно захватывает из окружающей области, используя список захвата. Список захвата записывается в виде списка, разделенного запятыми, заключенного в квадратные скобки перед списком параметров. Если вы используете список захвата, вы также должны использовать ключевое слово in, даже если вы опускаете имена параметров, типы параметров и возвращаемый тип.

Пример:

{
    [weak arg1, weak arg2] in 
    // ...
}
person Martin R    schedule 18.01.2015
comment
Всегда на помощь Мартин :) - person om-ha; 22.01.2019