0
// Add the button to the NSMutableArray.
...
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[[self hBtns] addObject:btn];
...

// In another method, try to see if it exists.
- (void)didPushBtn:(id)sender
{
  UIButton *btn = (UIButton *)sender;
  if ([[self hBtns] containsObject:btn]) // Is false every time.
  ...
}

UIButton が配列内にあることを検出しないのはなぜですか?


編集

追加された直後は、それを検出することさえできないことが判明しました:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[[self hBtns] addObject:btn];
if ([[self hBtns] containsObject:btn]) // Returns false.
4

2 に答える 2

3

配列を初期化するのを忘れていました (*doh*):

[self setHBtns:[[NSMutableArray alloc] initWithCapacity:0]];
于 2009-08-05T21:48:57.487 に答える
3

isEqual:比較が失敗しているように聞こえます。hash両方の場所 (追加された場所と ) で UIButton を見didPushBtnて、それらが同じ値であるかどうかを確認できますか?

于 2009-08-05T21:32:31.640 に答える