2017-01-09 3 views
1

В документации метода enumerateAttribute сказано, относительно stop аргумента блока, что:Как остановить перечисление атрибутов NSAttributedString?

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

Однако, внутри блока stop аргумента является let и я не могу установить его на true.

Мне нужно остановить перечисление после появления первого атрибута. Как я мог это сделать?

+0

Близко связано: http://stackoverflow.com/questions/24214136/how-to-stop-enumerateobjectsusingblock-swift. –

ответ

4

Параметр представляет собой ссылку, которая содержит фактическое значение:

let attributed: NSAttributedString = ... 

attributed.enumerateAttribute(
    NSFontAttributeName, 
    in: NSRange(location: 0, length: attributed.length), 
    options: [] 
) { value, range, stop in 
    stop.pointee = true 
} 

Смотрите ссылку на UnsafeMutablePointer.