QA@IT
«質問へ戻る

質問を投稿

containsObjectでうまく判定できない

NSArrayインスタンスをcomponentsJoinedByStringして文字列にしたあと、componentsSeparatedByStringで配列に戻した場合にcontainsObjectでうまく判定できなくて困っています。

以下はサンプルコードです。

NSString *hoge = @"1";
NSString *fuga = @"2";

NSArray *arrayA = @[hoge, fuga];
NSString *stringA = [arrayA componentsJoinedByString:@","];
NSArray *arrayB = [stringA componentsSeparatedByString:@","];

if ([arrayB containsObject:hoge]) { // YESを返して欲しい
  // ...
}

containsObject内部でisEqualが呼ばれてNOが返されているのは理解しているのですが、この問題をどう解決すればいいのかがわかりません。宜しくお願いします。

`NSArray`インスタンスを`componentsJoinedByString`して文字列にしたあと、`componentsSeparatedByString`で配列に戻した場合に`containsObject`でうまく判定できなくて困っています。

以下はサンプルコードです。

```objc
NSString *hoge = @"1";
NSString *fuga = @"2";

NSArray *arrayA = @[hoge, fuga];
NSString *stringA = [arrayA componentsJoinedByString:@","];
NSArray *arrayB = [stringA componentsSeparatedByString:@","];

if ([arrayB containsObject:hoge]) { // YESを返して欲しい
  // ...
}
```

`containsObject`内部で`isEqual`が呼ばれて`NO`が返されているのは理解しているのですが、この問題をどう解決すればいいのかがわかりません。宜しくお願いします。