1

次のコードを使用して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
                         }
                 }];

ブロックが最後の反復にあるときを知るにはどうすればよいですか?それに従ってプログラムを同期できますか?

ありがとう。

4

2 に答える 2

2

非同期操作に関連付けられることが多いブロックの存在にもかかわらず、これらの種類の列挙メソッドは非同期では発生しません。同期的に実行されます。あなたは大丈夫なはずです。

于 2013-04-24T13:38:29.177 に答える
1

正規表現の直後にプログラムを同期できます。

[regex enumerateMatchesInString: ... ];
[self syncMyProgram];
于 2013-04-24T13:40:33.587 に答える