主线程上的NSAttributedstring

时间:2015-03-20 01:54:56

标签: ios nsattributedstring

我可以使用它从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中使用主线程而不是块?

1 个答案:

答案 0 :(得分:0)

实际上这不是异步操作。 usingBlock只是作为enumerateAttribute:调用的一部分同步调用,并且在您进行该调用的同一线程上调用。请参阅usingBlock:作为执行for循环的替代方法。

如果你不在主线程上,那么你可以使用这样的东西来确保:

dispatch_async(dispatch_get_main_queue(), ^{
   [string enumerateAttribute: ... usingBlock: ^{
      // Code here
   }];
});