2017-01-09 2 views
1

Dans la documentation du procédé enumerateAttribute il est dit, en ce qui concerne l'argument stop du bloc, ce qui suit:Comment arrêter l'énumération des attributs d'un NSAttributedString?

Le bloc peut définir la valeur réelle pour arrêter un traitement ultérieur de l'ensemble.

Cependant, à l'intérieur du bloc l'argument stop est un let et je ne peux pas le mettre à true.

Je dois arrêter d'énumérer après la première occurrence d'attribut trouvée. Comment pourrais-je faire ça?

+0

Etroitement lié: http://stackoverflow.com/questions/24214136/how-to-stop-enumerateobjectsusingblock-swift. –

Répondre

4

Le paramètre est une référence qui contient la valeur réelle:

let attributed: NSAttributedString = ... 

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

Voir la référence pour UnsafeMutablePointer.