繁体   English   中英

初始化后将值分配给对象中的NSUInteger

[英]Assign value to NSUInteger in object after init

我有一个NSObject的子类。 在此类中,我有一个这样声明的NSUInteger:

@interface Deck : NSObject

- (id)initDecks:(NSUInteger)decks;
- (Card *)drawCard;

@property (nonatomic, assign) NSUInteger drawnCards;

在我的实现文件中,我有以下代码:

#import "Deck.h"

@implementation Deck

- (id)initDecks:(NSUInteger)decks {
    self = [super init];

    if (self) {
        self.drawnCards = 1;
    }

    return self;
}

- (BJCard *)drawCard {
    self.drawnCards++;
    return nil;
}

在init方法中分配给NSUInteger的数字(drawedCards)设置正确,但是,以后我将无法更改它。 我没有在Xcode中收到任何警告或崩溃,但数量仍然无法更改。 我试图做self.drawnCards ++和self.drawnCards = 10等,但没有任何效果。 知道我的代码有什么问题吗? 我正在用以下方法检查值:

NSLog(@"Value: %tu", self.drawnCards);

我相信这里的问题是ObjectiveC点语法。 因为你在做. 对于一个对象,这等效于进行[self drawnCards]++方法调用。 该方法的结果增加,而不是drawCards ivar增加。 要执行您想要的操作,您需要执行_drawnCards++ (直接访问iVar),或者需要执行[self setDrawnCards:self.drawnCards++]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM