в порядке, UIImage
метод [UIImage imageNamed:[NSString stringWithFormat:@"Dot_X.png"]]
всегда создает новый экземпляр объекта изображения, приходит в ваш код
UIImage *image_X = [UIImage imageNamed:[NSString stringWithFormat:@"Dot_X.png"]]; //<UIImage: 0x7a041ae0> an example lets say
[_cell00 setImage:image_X forState:UIControlStateNormal];
в указанном выше способе у настраивает новый экземпляр изображения для кнопок нормального состояния позволяет сказать, что это <UIImage: 0x7a041ae0>
в методе сравнения,
UIImage *image_X = [UIImage imageNamed:[NSString stringWithFormat:@"Dot_X.png"]]; //<UIImage: 0x78e02e90> it create a brand new image
if ([_cell00 imageForState:UIControlStateNormal] == image_X)
{
NSLog(@"CELL00 = X");
}
в приведенном выше коде, у вновь создает новый экземпляр, который отличается от того, у уже установленного для кнопки _cell00
изображение <UIImage: 0x78e02e90>
это совершенно другое, то будет это все дни s идет в «_cell00! = X»
так вместо и можно сделать, как показано ниже,
в процессе настройки изображения для кнопки установить все изображения кнопки для,
[_cell00 setImage: [UIImage imageNamed:[NSString stringWithFormat:@"Dot_X.png"]] forState:UIControlStateNormal];
[_cell00 setImage: [UIImage imageNamed:[NSString stringWithFormat:@"Dot_X.png"]] forState:UIControlStateHighlighted];
[_cell00 setImage: [UIImage imageNamed:[NSString stringWithFormat:@"Dot_O.png"]] forState:UIControlStateSelected];
и сопоставляя кнопку , просто проверьте погоду, что кнопка выбрана или нет, если она не выбрана, а затем выберите ее, если вы не просто переключитесь назад, например, ваш метод сравнения выглядит примерно так
if(_cell00.selected)
{
_cell00.selected = NO;
NSLog(@"CELL00 = X");
}
else
{
_cell00.selected = YES;
NSLog(@"CELL00 != X");
}
большое спасибо! isEqual вместо == было правильным предложением. Не знаю, почему, но теперь он работает! – Sausagesalad
Отлично, с удовольствием помогите @ Sausagesalad –