目前我想改进我的应用程序的结构,我想做的是访问我在另一个类中的第一个 CCLayer (Cocos2D) 类中创建的属性。现在显然我可以分配它然后我可以访问它但是然后调用 init 方法并且事情从那里走下坡路。
无论如何,有什么方法可以访问我的其他 CCLayer 类中的属性而无需再次分配它?
此外,我的应用程序中已经有一个 Singleton,但其中有很多变量,它变得如此混乱。除了使用单例之外,还有其他方法吗?
我已经设置了属性,只是我需要在另一个类中访问它而无需分配技术。
谢谢!
目前我想改进我的应用程序的结构,我想做的是访问我在另一个类中的第一个 CCLayer (Cocos2D) 类中创建的属性。现在显然我可以分配它然后我可以访问它但是然后调用 init 方法并且事情从那里走下坡路。
无论如何,有什么方法可以访问我的其他 CCLayer 类中的属性而无需再次分配它?
此外,我的应用程序中已经有一个 Singleton,但其中有很多变量,它变得如此混乱。除了使用单例之外,还有其他方法吗?
我已经设置了属性,只是我需要在另一个类中访问它而无需分配技术。
谢谢!
我对 cocos 了解不多,但是在 Objective C 中,您需要简单地找到对相关对象的引用才能访问其属性。
有几种方法可以从其他对象访问对象:
NSDictionary
) 或一个缓存 ( NSCache
),让您可以通过程序分配给它们的字符串键来定位对象的实例。你需要的是一个单例类。我通常是这样做的:
标题:
#import <Foundation/Foundation.h>
@interface Configuration : NSObject {
NSString *serverPath;
NSString *configurationServicePath;
}
// Single instance
+ (Configuration *) configuration;
实施:
@implementation Configuration
@synthesize serverPath, configurationServicePath;
- (id)init {
self = [super init];
if (self) {
// init
}
return self;
}
+ (Configuration *) configuration
{
static Configuration *configuration;
@synchronized(self)
{
if (!configuration) {
configuration = [[Configuration alloc] init];
}
return configuration;
}
}
因此,每次使用您的类时,您都可以使用以下行获取实例(如果已经有,如果没有,则只创建一次实例):
Configuration configuration = [Configuration configuration];