何らかの理由で、コードで 2 つの文字列を適切に比較できない理由がわかりません。オブジェクト (文字列を含むプロファイル: グループ) の配列があり、そのグループが文字列と一致しない場合は、このプロファイル オブジェクトを削除したいだけです。
これは私が持っているものです:
プロファイル オブジェクトの .h ファイル:
@property (nonatomic, copy) NSString *group;
アレイを調べて、正しくないプロファイルをダンプしているコントローラー ファイル - その .h ファイル:
@property (nonatomic, copy) NSString *buttonSelected;
この *buttonSelected は、ユーザーがボタンを選択したときに設定され、コードは単に送信者タグをチェックし、次のように適切な文字列を割り当てます。
[controller setbuttonSelected:@"My Button Has Been Selected"];
問題は、この buttonSelected と配列オブジェクト (グループ プロパティを持つプロファイル オブジェクト) を比較しようとすると発生します。
_profileArray = [xmlParser profiles];
for(int i=0; i<[_profileArray count]; i++){
NSLog(@"Comparing button: %@ and group: %@", [self buttonSelected], [[_profileArray objectAtIndex:i] group]);
if([[self buttonSelected] isEqualToString:[[_profileArray objectAtIndex:i] group]]) NSLog(@"Equal");
}
_profileArray には 3 つのオブジェクトがあり、グループが実際に buttonSelected に等しいオブジェクトは 2 つだけです。したがって、システム出力 2 は "Equal" のみである必要がありますが、"Equal" は出力されません。