如何在regex枚举块结束时收到通知?

时间:2013-04-24 13:34:22

标签: ios regex

我正在使用以下代码来操作我的str字符串:

NSString *pattern = @"\\['(.*?)',(.*?),(.*?),(.*?),(.*?)\\]";
NSRegularExpression *regex = [NSRegularExpression
                              regularExpressionWithPattern:pattern
                              options:NSRegularExpressionCaseInsensitive
                              error:nil];
[regex enumerateMatchesInString:str
                        options:0
                          range:NSMakeRange(0, [str length])
                     usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop){
                         if (result != nil) 
                         {
                                 // do something with matched string
                         }
                 }];

如何知道块何时处于最后一次迭代中,以便我可以相应地同步我的程序?

感谢。

2 个答案:

答案 0 :(得分:2)

尽管存在我们经常与异步操作相关联的块,但这些类型的枚举方法并不是异步发生的。它同步运行。你应该没事。

答案 1 :(得分:1)

您可以在正则表达式后立即同步您的程序:

[regex enumerateMatchesInString: ... ];
[self syncMyProgram];