すでにデータが保存されているObjective-cでクラスを作成したいので、データにアクセスするためにクラスをインスタンス化したくありません。どうすればいいですか?
質問する
2365 次
1 に答える
9
シングルトンを使用することも、クラスメソッドのみで構成されて静的データにアクセスできるクラスを使用することもできます。
ObjCでの基本的なシングルトン実装は次のとおりです。
@interface MySingleton : NSObject
{
}
+ (MySingleton *)sharedSingleton;
@property(nonatomic) int prop;
-(void)method;
@end
@implementation MySingleton
@synthesize prop;
+ (MySingleton *)sharedSingleton
{
static MySingleton *sharedSingleton;
@synchronized(self)
{
if (!sharedSingleton)
sharedSingleton = [[MySingleton alloc] init];
return sharedSingleton;
}
}
-(void)method {
}
@end
そしてあなたはそれをこのように使います:
int a = [MySingleton sharedSingleton].prop
[[MySingleton sharedSingleton] method];
クラスメソッドベースのクラスは次のようになります。
@interface MyGlobalClass : NSObject
+ (int)data;
@end
@implementation MySingleton
static int data = 0;
+ (int)data
{
return data;
}
+ (void)setData:(int)d
{
data = d;
}
@end
于 2012-10-25T07:51:40.360 に答える