0

我正在尝试使用以下命令从包含 SPACE 的 NSMutableArray 对象中删除任何元素:

[searchCriteria removeObject:[NSString stringWithString:@" "]];

我收到异常“-[__NSArrayI removeObject:]: unrecognized selector sent to instance”。我究竟做错了什么?

编辑:好的,所以我尝试了以下

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF NOT CONTAINS ' '"];
NSArray *nonEmptyElements = [searchCriteria filteredArrayUsingPredicate: predicate];

并得到错误 Unable to parse the format string "SELF NOT CONTAINS ' '"'

如何在 CONTAINS 之后指定一个空字符串?

4

2 回答 2

4

你有一个普通的 NSArray 而不是 NSMutableArray。可能在某个时候,您认为您拥有的 NSMutableArray 被复制或序列化,从而产生了一个不可变数组。

顺便说一句,正如 Lefteris 所说,这将过滤掉仅包含单个空格的字符串。要过滤掉任何在其中有空格的字符串,您需要按照他所说的方式进行操作。而且,如果您确实想过滤掉单空格字符串,那么只需编写@" "而不是更简单[NSString stringWithString:@" "]- 它完全等效。

于 2012-05-23T00:57:49.000 回答
2

您应该使用 NSPredicate 过滤掉任何带有空格的项目。请参阅此处如何执行此操作:https ://stackoverflow.com/a/1057202/312312

不过,您应该使用 self contains 谓词,而不是示例使用的 self 开头。l

于 2012-05-23T00:41:08.263 回答