METAR 天気予報 ( http://weather.noaa.gov/pub/data/observations/metar/cycles/からダウンロード) から風の説明をキャプチャし、そのブロックから風の成分を取得しようとしています。一致します。正規表現は@"^([0-9]{3}|VRB)([0-9]{2,3})G?([0-9]{2,3})?(KT|MPS|KMH)"
.
キャプチャされた一致を配列に列挙するために PDRegex ライブラリを使用しています。(PDRegex ライブラリはhttps://github.com/carlbrown/RegexOnN SString/blob/master/RegexOnNSString/NSString%2BPDRegex.m にあります)
これらは私のコードで該当する行です:
word = @"16008KT"; //test block
NSArray *matches = [word stringsByExtractingGroupsUsingRegexPattern:@"^([0-9]{3}|VRB)([0-9]{2,3})G?([0-9]{2,3})?(KT|MPS|KMH)"];
( PDRegexstringsByExtractingGroupsUsingRegexPattern
メソッド) が呼び出されて一致すると、 の 62 行目でクラッシュしNSString+PDRegex
ます。これは、アプリがクラッシュする PDRegex の行です。
NSString *matchedString=[self substringWithRange:[result rangeAtIndex:i]];
そして、これはクラッシュレポートです:
キャッチされていない例外 'NSRangeException' が原因でアプリを終了しています。理由: '-[__NSCFString substringWithRange:]: 範囲またはインデックスが範囲外です'