gpt4 book ai didi

ios - 在 Objective C 中使用静态变量引用类的实例?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:27:58 24 4
gpt4 key购买 nike

我是 Objective C 的新手,这个问题可能有点蹩脚,但是:

我正在尝试制作一个 iOS 游戏,其中有一个类“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):

@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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com