簡體   English   中英

為什么刪除空字符串的元素時removeObject會引發異常?

[英]Why does removeObject throw an exception when removing elements that are empty strings?

我試圖使用以下方法從包含空格的NSMutableArray對象中刪除所有元素:

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

我收到異常“-[__ NSArrayI removeObject:]:無法識別的選擇器發送到實例”。 我究竟做錯了什么?

編輯:好的,所以我嘗試了以下

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

並得到錯誤無法解析格式字符串“ SELF NOT CONTAINS''”'

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

您有一個普通的NSArray而不是NSMutableArray。 可能在某個時候,您以為您已經復制或序列化了NSMutableArray,導致數組不可變。

順便說一句,正如Lefteris所說,這將過濾掉僅包含一個空格的字符串。 要過濾掉其中有空格的任何字符串,您需要按照他說的方式進行操作。 而且,如果您確實想過濾出單個空格的字符串, [NSString stringWithString:@" "]@" "而不是[NSString stringWithString:@" "]更簡單-這是完全等效的。

您應該使用NSPredicate過濾掉所有帶空格的項目。 查看此處的操作方法: https//stackoverflow.com/a/1057202/312312

但是,您應該使用self包含謂詞,而不是示例中使用的self開頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM