2016-05-12 60 views
-1
NSString *result = nil; 
if([result rangeOfString:@"SUCCESS"].location != NSNotFound) 
{ 
    NSLog(@"Location: %lu", [result rangeOfString:@"SUCCESS"].location); 
    NSLog(@"Length: %lu", [result rangeOfString:@"SUCCESS"].length); 
} 
else{ 
    NSLog(@"NULL found: %@", result); 
} 

这个代码显示输出:当主字符串为零且子字符串不为零时,iOS rangeofString会执行什么操作?

2016-05-12 18:51:44.589 TestProject[21666:207505] Location: 0 

2016-05-12 18:51:44.590 TestProject[21666:207505] Length: 0 

其实它应该显示输出:

NULL found: (null) 

请解释一下,输出

回答

0

从以下链接的原因,我得到了关于很好的解释此类问题:

How do I check if a string contains another string in Objective-C?

特别是你可以阅读@ ucangetit的答案。

你可以按照这个两个功能....

- (BOOL)doesString:(NSString*)string containString:(NSString*)otherString { 
    if(otherString && [string rangeOfString:otherString].length) 
     return YES; 
    else 
     return NO; 
} 

或者干脆:

- (BOOL)doesString:(NSString*)string containString:(NSString*)otherString { 
    return (otherString && [string rangeOfString:otherString].length); 
} 
0

在我看来,如果range.length == 0 =>未找到。

NSString *result = nil; 
NSRange range = [result rangeOfString:@"SUCCESS"];//location=0, length=0 
if(range.length > 0) //Found 
{ 
    NSLog(@"Location: %lu", range.location); 
    NSLog(@"Length: %lu", range.length); 
} 
相关问题