1

私はMacOSXの開発にまったく慣れていません(ちょうど2日目)。iOSプログラミングを数か月行い、基本を習得し、小さなアプリを作成しました。それから、突然問題が発生したときにMacOSXでも使用することにしました。NSRegularExpressionはMacOSX 10.7以降でのみサポートされており、10.6.7を使用しています。少しグーグルした後、RegexKit.frameworkを見つけました。それでインストールしましたが、RegexKitフレームワーク用にこのコードを書き直さなければなりません。

NSString *aString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression         
                              regularExpressionWithPattern:@"(\\{.*?\\})"
                              options:NSRegularExpressionCaseInsensitive
                              error:&error];
[regex enumerateMatchesInString:aString options:0 range:NSMakeRange(0, [aString length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){
    [MyParserClass parserWithResponse:[aString substringWithRange:match.range] delegate:self andRequest:request];
}];

RegexKitを使用して同じことを行う方法についてのヘルプをいただければ幸いです。

編集:それをそのように機能させました:

NSString *aString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSString *regex = @"(\\{.*?\\})";
NSArray *matches = [aString arrayOfCaptureComponentsMatchedByRegex:regex];
for (NSArray *match in matches) {
    [MyParserClass parserWithResponse:[match lastObject] delegate:self andRequest:request];
}

うまくいけば、それはいつか誰かを助けるでしょう:)

4

1 に答える 1

3

そのように動作しました:

NSString *aString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSString *regex = @"(\\{.*?\\})";
NSArray *matches = [aString arrayOfCaptureComponentsMatchedByRegex:regex];
for (NSArray *match in matches) {
    [MyParserClass parserWithResponse:[match lastObject] delegate:self andRequest:request];
}

うまくいけば、いつか誰かを助けるでしょう:)

于 2011-11-16T12:40:23.787 に答える