我希望能够在NSString
中搜索某些字符,如果应用找到它,我希望它能够查找字符串的另一部分。问题是我到目前为止的代码:
- (IBAction)searchButtonTapped:(id)sender {
NSString *data = [NSString stringWithFormat:@"http://www.example.com/example.pdf"];
if ([data rangeOfString:@"http://"].location != NSNotFound) {
if ([data rangeOfString:@".pdf"].location != NSNotFound) {
NSLog(@"Found .pdf");
} else {
NSLog(@"Did not find .pdf");
}
}
}
......不起作用;它直接转到else
语句而不是if
语句。我该如何解决这个问题?提前谢谢。
答案 0 :(得分:0)
出于某种愚蠢的原因,当我告诉它搜索不同的字符串时,它会起作用。
NSString *data = [NSString stringWithFormat:@"http://www.example.com/example.pdf"];
if ([data rangeOfString:@"http://"].location != NSNotFound) {
NSString *dataToSearchRangeOfString = data;
if ([dataToSearchRangeOfString rangeOfString:@".pdf"].location != NSNotFound) {
NSLog(@"Found .pdf");
} else {
NSLog(@"Did not find .pdf");
}
}
如果有人确实知道如何解决这个问题而不需要这样做,我很乐意将你的答案标记为正确。
答案 1 :(得分:0)
您当前的代码应该有效,
但你可以试试这个替代方案;
- (BOOL)isPdfUrl:(NSString*)urls {
NSArray *elements = @[@"http", @"."];
for (NSString *element in elements) {
if ([urls rangeOfString:element].location == NSNotFound) {
return NO;
}
}
NSArray *possibleFiles = @[@"pdf"];
for (NSString *file in possibleFiles) {
if ([urls rangeOfString:file].location != NSNotFound) {
return YES;
}
}
return NO;
}
答案 2 :(得分:0)