まず、私は Lua 出身です。私がグローバル変数志向であることを責めないでください (笑)。それで、私はこの「シングルトンシステム」全体の使用方法について読んでいますが、ポイントを完全に見逃しているのか、それとも単に間違って実装しているだけなのかわかりません。
私のコードの目標は、複数のファイルが特定のファイルの配列のサイズを保持する変数にアクセスする方法を作成することです。ここに私のシングルトンがあります:
.h
#import <Foundation/Foundation.h>
@interface GlobalVariables : NSObject
{
NSNumber *currentGameArrayCount;
BOOL *isGamePaused;
}
@property (nonatomic, readwrite) NSNumber *currentGameArrayCount;
@property (nonatomic, readwrite) BOOL *isGamePaused;
+ (GlobalVariables *)sharedInstance;
@end
.m
#import "GlobalVariables.h"
@implementation GlobalVariables
@synthesize currentGameArrayCount, isGamePaused;
static GlobalVariables *gVariable;
+ (GlobalVariables *)sharedInstance
{
if (gVariable == nil) {
gVariable = [[super allocWithZone:NULL] init];
}
return gVariable;
}
- (id)init
{
self = [super init];
if (self)
{
currentGameArrayCount = [[NSNumber alloc] initWithInt:0];
isGamePaused = NO;
}
return self;
}
@end
そして、私が使用する配列を持つ別のファイルで:
GlobalVariables *sharedData = [GlobalVariables sharedInstance];
NSNumber *tmpArrayCount = [sharedData currentGameArrayCount];
NSInteger tmpCount = [whereStuffActuallyHappens.subviews count]; // Subviews is the array
NSNumber *currentCount = [NSNumber numberWithInteger:tmpCount];
tmpArrayCount = currentCount;
このコードの目的は、singeton で変数を取得し ( currentGameArrayCount
)、現在の配列カウントを設定することでした ( currentCount
)。シングルトンの目的を間違って解釈していますか? 私はシングルトンが苦手で、正しくセットアップしていませんか? 配列カウントをすべてのファイルにアクセスできるようにする結果をどのように達成できるか知っている人はいますか?