0

次を使用して、SPACEを含むNSMutableArrayオブジェクトから要素を削除しようとしています。

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

「-[__NSArrayIremoveObject:]:認識されないセレクターがインスタンスに送信されました」という例外が発生します。私は何が間違っているのですか?

編集:OK、それで私は以下を試しました

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

そして、エラーが発生しますフォーマット文字列 "SELF NOTCONTAINS''"'を解析できません

CONTAINSの後に空の文字列を指定するにはどうすればよいですか?

4

2 に答える 2

4

NSMutableArray ではなく、プレーンな NSArray があります。おそらくある時点で、あなたが持っていると思っていた NSMutableArray がコピーまたはシリアル化され、不変の配列になったのでしょう。

ちなみに、Lefteris が言うように、これは 1 つのスペースだけで構成される文字列を除外します。スペースが含まれる文字列を除外するには、彼の言うとおりにします。また、単一スペースの文字列を除外したい場合は、@" "代わりに書くだけの方が簡単です[NSString stringWithString:@" "]— それは正確に同等です.

于 2012-05-23T00:57:49.000 に答える
2

スペースのあるアイテムを除外するには、NSPredicate を使用する必要があります。これを行う方法をここで参照してください: https://stackoverflow.com/a/1057202/312312

ただし、この例で使用されている self startswith の代わりに、self contains 述語を使用する必要があります。

于 2012-05-23T00:41:08.263 に答える