NSArray对象的NSString值

时间:2010-01-17 18:43:31

标签: iphone nsstring nsarray

我正在试图弄清楚为什么这段代码不起作用。我正在尝试搜索字符串是否包含“| 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
}

这会让我的应用崩溃。

2 个答案:

答案 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) {
    ....
  }