我正在试图弄清楚为什么这段代码不起作用。我正在尝试搜索字符串是否包含“| P”。如果是的话,我想做点什么。
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
}
这会让我的应用崩溃。
答案 0 :(得分:4)
NSArray *chunks
是NSArray,而不是C数组。您可以使用[chunks objectAtIndex:1]
来查找对象,而不是&chunks[1]
。
要查找sting是否包含其他字符串,您可以使用([cellValue rangeOfString:@"IP"].length == 0)
。如果范围的长度为0,则原始字符串中不存在该字符串。 Reference
答案 1 :(得分:2)
1。您没有按NSArray
索引x[1]
。你是通过过于冗长的[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) {
....
}