URL を含む可能性のあるツイートを解析しようとしています。ツイートの残りの部分で、URL を別の色/フォントでフォーマットしたいと考えています。したがって、明らかに、URL はテキスト内のどこにでも配置できます。だから私は次のようなカテゴリメソッドを持っています:
NSString *urlString = @"";
NSRange startRange = [self rangeOfString:@"http://" options:NSCaseInsensitiveSearch];
if (startRange.length) {
NSString *subStr = [self substringFromIndex:startRange.location];
NSCharacterSet *set = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSRange endRange = [subStr rangeOfCharacterFromSet:set];
if (endRange.length) {
NSRange finalRange;
finalRange.location = startRange.location;
finalRange.length = endRange.location - 1;
NSString *finalString = [self substringWithRange:finalRange];
debugTrace(@"finalString : %@", finalString);
}
}
return urlString;
したがって、基本的にhttp://
はテキスト内の範囲を見つけて、そこから最後まで部分文字列を作成します。そこから最初のものを探し、それwhitespaceAndNewlineCharacterSet
を URL の末尾として使用してfinalString
. ただし、ライン
NSRange endRange = [subStr rangeOfCharacterFromSet:set];
ガベージ値を返すため、正しいものを使用していないと思わNSCharacterSet
れますendRange
Printing description of endRange:
(NSRange) endRange = location=2147483647, length=0
URL の末尾を見つけるにはどうすればよいでしょうか。