我可以使用它从nsattributed string获取所有属性。
- (void)enumerateAttribute:(NSString *)attrName inRange:(NSRange)enumerationRange options:(NSAttributedStringEnumerationOptions)opts usingBlock:(void (^)(id value, NSRange range, BOOL *stop))block NS_AVAILABLE(10_6, 4_0);
我是否知道可以在enumerateAttribute中使用主线程而不是块?
答案 0 :(得分:0)
实际上这不是异步操作。 usingBlock
只是作为enumerateAttribute:
调用的一部分同步调用,并且在您进行该调用的同一线程上调用。请参阅usingBlock:
作为执行for
循环的替代方法。
如果你不在主线程上,那么你可以使用这样的东西来确保:
dispatch_async(dispatch_get_main_queue(), ^{
[string enumerateAttribute: ... usingBlock: ^{
// Code here
}];
});