我是Objective C的新手,这可能是一个a脚的问题,但:
我正在尝试制作一个iOS游戏,其中有一个“Monster”类,该类每秒生成一个Monster的新实例,我希望能够跟踪每个Monster以便以某种方式使用/操作它。 。
目前,我正在尝试为每个Monster分配唯一的ID,
例如这样的事情:
//Incorrect Syntax ...
Class Monster extends CCSprite
public static global_id = 0;
public instance_id;
init() {
instance_id = global_id;
global_id ++;
}
如何在Monster类的头文件/实现文件中管理此问题?
在Objective-C中似乎“静态”“不存在”。
最佳答案
您通常可以通过以下方法解决此问题:
static
,在C术语中表示“无法从此编译单元外部访问”(如果您不使用预处理器,则一个源文件就是一个编译单元)。 因此,接口:
@interface AEMonster: CCSprite
@property (nonatomic, readonly) int instanceID;
@end
实现方式:
static int globalID = 0;
@implementation AEMonster
- (instancetype)init
{
self = [super init];
if(self)
{
_instanceID = globalID;
globalID ++;
}
return self;
}
@end
关于ios - 使用静态变量在Objective C中引用类的实例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24746991/