Я делаю карточную игру (вроде), используя SpriteKit
. Я создал класс карты, и каждая карта имеет ранг:Правильный способ получения свойства NSInteger из другого класса?
// in Card.h
@property NSInteger cardRank;
В одном из моего другого класса (класс Game), я пытаюсь получить это значение. Я создаю экземпляр карты, а также отображать значение в консоли (тестирование цели):
Card *tmpCard = [[Card alloc] init];
NSLog(@"%@", tmpCard.cardRank);
Когда я использую% @ в NSLog, я получаю правильное значение для cardRank, но предупреждение Xcode о том, что " Значения типа nsinteger не должны использоваться в качестве аргументов формата «и что я должен использовать« long ».
Если я бросаю долго ...:
NSLog(@"%ld", (long)tmpCard.cardRank);
... Я не получил сообщение об ошибке, но не правильное значение для cardRank (он показывает что-то вроде "140378469207968").
Может ли кто-нибудь объяснить мне, почему я получил этот результат?
Я, вероятно, совершу ошибку новобранец, но не мог понять это сам в течение нескольких дней.
ли вы назначили его значение по умолчанию? –
«Когда я использую% @ ...» Вы уверены, что используете% @ без сбоев? – gnasher729
@ParthBhatt: Все объекты Objective-C инициализируются нулями. – gnasher729