rangeOfString の呼び出し元の場所が非常に大きな値を返してはならないときに、この奇妙な効果が発生しています...
私のコードは次のようになります。
NSRange range = [string rangeOfString:subString];
NSLog(@"range is %@", NSStringFromRange(range));
これはログアウトしますrange is {2147483647, 0}
正確な理由がわかりません。
これを引き起こしている可能性のあるいくつかのこと:
- 部分文字列は、NSString の initWithBytes メソッドを使用してバイト配列から生成されます
- 部分文字列は、それが NSCFString * であることを示していますが、「変数は NSString ではありません」とも言っています
- 部分文字列は、期待どおりにコンソールに記録されます
どんな助けでも大歓迎です
ここに私を奇妙に感じさせるものがあります: