目标c中的唯一标识符(长)

时间:2014-04-10 09:47:37

标签: ios objective-c

我有一个名为class的{​​{1}}。它有Letter(长)属性。 当我使用这个类时,我希望myId是这样的:

myId

Letter *obj1 = [[Letter alloc] init] Letter *obj1 = [[Letter alloc] init] Letter *obj1 = [[Letter alloc] init] 必须为1 obj1.myId必须为2 obj2.myId必须为3

我试过这个:

obj3.myId

但它没有用。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

使用static全局变量来跟踪id:

@implementation Letter

static long _id = 1;

- (instancetype) init
{
    self = [super init];
    if (self != nil){
        _myId = _id++;
    }
    return self;
}
@end

(请注意,我删除了initWithId方法,转而使用普通版init)。