单身变化整数

时间:2012-11-30 12:57:24

标签: ios xcode

我有一个以这种方式实现的单身人士:

PhotoViewController* sharedSingleton = [PhotoViewController sharedManager];

我知道要启动我必须做的方法[sharedSingleton method];

但是如果我想将PhotoViewController.h文件中声明的整数更改为NSInteger * tagNumber,我可以这样做吗?我试过这个:

[sharedSingleton.tagNumber = 1];

但它不起作用!

编辑:

错误:在photoViewController类型的对象上找不到属性tagNUmber

@interface PhotoViewController : UIViewController{

BOOL newMedia;
UIPopoverController *popoverController;
DBRestClient *restClient;
NSInteger* tagNumber;
}

+ (PhotoViewController *) sharedManager;

@end

1 个答案:

答案 0 :(得分:1)

单身人士是常规对象。唯一的区别是只能从类中创建一个实例。

如果你无法设置tagNumber,很可能会发生其他类型的编码错误......也许tagNumber属性是在类扩展中声明的,使得accessor / mutator方法是私有的?

如果您根据tagNumber的声明方式编辑问题,并且还包含您收到的错误消息,我将能够编辑此答案并为您提供更具体的建议。

编辑: ...是的,绝对要仔细检查以确保你没有声明NSInteger是一个指针... NSInteger是一个标量类型(因此它需要直接值,并且不使用解除引用'*'运算符)。

我建议使用属性而不是直接访问实例变量:

@interface PhotoViewController : UIViewController

@property (nonatomic, assign) BOOL newMedia;
@property (nonatomic, strong) UIPopoverController *popoverController;
@property (nonatomic, strong) DBRestClient *restClient;
@property (nonatomic, assign) NSInteger tagNumber;

+ (PhotoViewController *) sharedManager;

@end

然后将不带括号的变量设置为:

sharedSingleton.tagNumber = 1;