2010-01-17 71 views
2

我想弄清楚爲什麼這段代碼不起作用。我試圖搜索一個字符串是否包含「| P」。如果有,我想做點什麼。NSArray對象的NSString值

NSMutableArray *list = [pView getPOIList]; 
NSString *cellValue = [list objectAtIndex:indexPath.row]; 
cell.textLabel.text = cellValue; 
NSArray *chunks = [cellValue componentsSeparatedByString: @"|P"]; 
//NSLog([[chunks count] stringValue]); 
if([&chunks[1] isEqualToString:@"|P"]) { 
     //Do Something 
} 

這使我的應用程序崩潰。

回答

4

NSArray *chunks是一個NSArray,而不是一個C數組。您可以使用[chunks objectAtIndex:1]查找對象而不是&chunks[1]

要查找sting是否包含其他字符串,可以使用([cellValue rangeOfString:@"IP"].length == 0)。如果範圍的長度爲0,則該字符串不存在於原始字符串中。 Reference

+0

謝謝。 objectAtIndex是問題。我還需要用|來分割字符串,而不是| P。 – Adam 2010-01-17 18:51:17

+1

如果您使用rangeOfString,最好查找.location = NS_NOT_FOUND(以免我認爲它更清楚您正在做什麼) – 2010-01-17 19:05:18

2

1.您不用x[1]索引NSArray s。你用過於詳細的[x objectAtIndex:1]來做。

2.componentsSeparatedByString:將由|P字符串分開,因此,如果字符串是:

FOO|PURPLE|BAR|PIE|42|P|P2 

將分離的字符串將成爲

("FOO", "URPLE|BAR", "IE|42", "", "2") 

不會找到包含字符串|P所得數組中的一個元素。如果您想確定是否存在子字符串,請使用rangeOfString:

NSRange substrRng = [cellValue rangeOfString:@"|P"]; 
    if (substrRng.location != NSNotFound) { 
    .... 
    }