静态属性,静态类,单例模式

时间:2013-04-13 12:13:15

标签: objective-c

我有3节课。

  • A类包含:

    1. 静态变量“dataX”。
    2. 设置数据的setter方法。
    3. 用于返回数据值的getter方法。
  • B类

  • C班。

流程如下:

B类实例化A类并用setter方法初始化变量“dataX”。

然后,类C在viewDidLoad方法中实例化A类并获取静态变量的值。

但即使A类中的变量是静态的,变量也总是为空。

我想我需要将Singleton Pattern与静态A类放在一起,而不仅仅是静态属性。

将Class指定为静态的语法是什么?

以下代码:

//  HandleMessage.h

@interface HandleMessage : NSObject
@property *NSString nameFile;

// Getter
- (NSString *)getNameFile;

// Setter
- (void)setNameFile: (NSString *) value;

@end

//  HandleMessage.m

#import "HandleMessage.h"

@implementation HandleMessage

static nameFile;

@synthesize nameFile ;

// Getter definition
- (NSString *)getNameFile{
    return nameFile;
}

// Setter definition
- (void)setNameFile: (NSString *) value{
    nameFile = value;
}

2 个答案:

答案 0 :(得分:1)

当您实例化类的另一个实例时,该实例的值为null。

您可以使用单身人士或将数据存储在其他位置(如果您希望使用NSUserdefaults在用户默认设置中保持应用启动之间的数据)

答案 1 :(得分:-1)

你是什么意思" Class as Static" ??

你可以使用我在this answer

中描述的单例模式

或使用类方法

ClassA.h

@interface ClassA

+ (void)setData:(int)data;
+ (int)getData;

@end

ClassA.m

static int sData;

@implementation ClassA

+ (void)setData:(int)data {
    sData = data;
}

+ (int)getData {
    return data;
}

@end