2016-05-12 59 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); 
} 
相關問題