我在目标C中遇到以下问题:在更大的上下文中,我想在String中搜索子字符串并获取第一个这样的子字符串所在的位置。我也希望搜索从后面开始。例如: 通过搜索“K”在“K123K”上调用所需的功能应该得到3,因为我从后面开始。
在我的代码中,搜索NSData对象更有效,因为这是我读到的内容。所以我尝试了一些测试代码,看看我提出的方法是否有效:
NSString *testString = @"01K234567K";
NSData *testData = [testString dataUsingEncoding:NSUTF8StringEncoding];
NSString *testLetter = @"K";
NSData *kData = [testLetter dataUsingEncoding:NSUTF8StringEncoding];
NSRange whereisK = [testData rangeOfData:kData options:NSBackwardsSearch range:NSMakeRange(0, [testData length])];
NSLog(@"loc: %d, len: %d",whereisK.location,whereisK.length);
结果与我的期望相反,似乎rangeOfData仍然从前面开始搜索:
loc: 2, len: 1
我真的不知道我做错了什么。似乎NSBackwardsSearch没有做它的工作!我很高兴有任何帮助或建议......