NSMutableArray содержит методObject, не обнаруживающий объект - PullRequest
0 голосов
/ 06 августа 2009
// 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 находится в массиве?


EDIT

Оказывается, он даже не обнаружит его сразу после добавления:

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

Ответы [ 2 ]

3 голосов
/ 06 августа 2009

Я забыл инициализировать массив (* doh *):

[self setHBtns:[[NSMutableArray alloc] initWithCapacity:0]];
3 голосов
/ 06 августа 2009

Похоже, что сравнение isEqual: не удается. Можете ли вы взглянуть на hash для UIButton в обоих местах (где он добавлен, а затем в didPushBtn) и посмотреть, имеют ли они одинаковое значение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...