Question

// 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.
  ...
}

Pourquoi ne détecte-t-il pas que le UIButton est dans le tableau?

MODIFIER

Il s'avère qu'il ne le détectera même pas juste après son ajout:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[[self hBtns] addObject:btn];
if ([[self hBtns] containsObject:btn]) // Returns false.
Était-ce utile?

La solution 2

J'avais oublié d'initialiser le tableau (* doh *):

[self setHBtns:[[NSMutableArray alloc] initWithCapacity:0]];

Autres conseils

On dirait que la comparaison isEqual: échoue. Pouvez-vous jeter un coup d'œil au hash de l'UIButton aux deux endroits (où il est ajouté, puis à didPushBtn ) et voir si elles ont la même valeur?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top