Хорошо - не совсем понятно, что здесь происходит. Я строю простую карточную игру. Я создал категорию UIView, которая обрабатывает все, что должно быть «Картой». Я считаю, что это не имеет значения, но, возможно, это не так.Настройка свойств объектов в NSMutableArray
В любом случае, на мой взгляд, контроллер, я просто создаю 2 NSMutableArrays, чтобы держать дилеров и игроков. Затем я вызываю метод для установки значения карты. В этом методе я делаю NSLog, чтобы увидеть значение конкретного объекта карты - и все выглядит хорошо. Но если я попытаюсь получить это значение от моего контроллера представления, он всегда возвращается для ВСЕХ объектов со значением последнего объекта в массиве.
некоторый код:
playersCards = [[NSMutableArray alloc] initWithObjects:[[UIView alloc] init],[[UIView alloc] init],nil];
[[playersCards objectAtIndex:0] setCardValue];
[[playersCards objectAtIndex:1] setCardValue];
NSLog(@"1: %i",[[playersCards objectAtIndex:0] returnValue]);
NSLog(@"2: %i",[[playersCards objectAtIndex:1] returnValue]);
Так что, когда я получаю NSLog после вызова setCardValue (это находится в пределах категории) - опять же, все в порядке. Но эти NSLogs прямо там - они возвращают значение индекса 1 для обоих. Что тут происходит?
«Я создал категорию UIView ...» Что такое категория? «Я просто создаю 2 NSMutableArrays ...» playersCards - это одно. Что еще? Вещи просто не складываются. –
Как я его лучше понимаю - Категории существенно расширяют существующие классы. В этом случае я создаю его, чтобы хранить все данные, которые «Карточка» должна иметь - ценность и костюм, - а также иметь способы «разбить» ее на игру, перевернуть ее и т. Д. Другой массив в этом приложение такое же, как у упомянутого выше массива playersCards, только для дилера. Я не включил его в код выше, так как он в принципе должен действовать одинаково; просто держите другой набор карт. – tnd