我试图使用以下内容从包含SPACE的NSMutableArray对象中删除任何元素:
[searchCriteria removeObject:[NSString stringWithString:@" "]];
我得到异常“ - [__ NSArrayI removeObject:]:无法识别的选择器发送到实例”。我做错了什么?
编辑: 好的,所以我尝试了以下
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF NOT CONTAINS ' '"];
NSArray *nonEmptyElements = [searchCriteria filteredArrayUsingPredicate: predicate];
并获取错误无法解析格式字符串“SELF NOT CONTAINS''”'
如何在CONTAINS之后指定一个空字符串?
答案 0 :(得分:4)
你有一个普通的NSArray而不是NSMutableArray。可能在某些时候你认为你的NSMutableArray被复制或序列化,导致一个不可变的数组。
顺便提一下,正如Lefteris所说,这将过滤掉仅由一个空格组成的字符串。要过滤掉任何位置有空格的字符串,您将按照他说的方式进行操作。如果您确实希望过滤掉单空格字符串,只需编写@" "
而不是[NSString stringWithString:@" "]
就可以了 - 它完全等效。
答案 1 :(得分:2)
您应该使用NSPredicate过滤掉任何有空格的项目。 请参见此处:https://stackoverflow.com/a/1057202/312312
你应该使用self contains谓词,而不是self以示例uses.l
开头