Cocoa, Swift, Objective-C: Closures and Blocks (Замыкания и блоки)

Сами замыкания рассмотрены в первой книге Closures (Замыкания)
Блоки Objective-C автоматически импортируются как замыкания в swift, но с пометкой атрибутом @convention(block)

Чтобы была возможность вживую протестировать код из этой главы — нужно создать проект из Взаимодействие swift с Objective-C

Добавим в ObjcTestClass.h свойство которое должно сдержать блок

Теперь в swift коде использующем этот Objective-C класс мы можем присвоить этому блоку swift замыкание

Существует лишь одно различие — все переменные в swift замыкании по умолчанию изменяемы (mutable), а не копируются. Другими словами имеют то же поведение что переменные в Objective-C помеченные атрибутом __block

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *