【发布时间】:2011-08-11 22:02:04
【问题描述】:
为了使我的代码可测试,我创建了一个惰性初始化器;这样在我的单元测试中,我可以在调用 getter 之前模拟我想要的任何对象。
但是,当涉及到类方法时,我的类方法无法访问我定义的属性。
- 有什么方法可以让我的类方法可以访问这些属性?
- 如果没有,是否有任何方法可以创建在该类之外也可以访问的静态变量,即我的单元测试类可以访问?
@implementation
@synthesize webService;
+ (void)doSomething
{
self.webService.url = @"some url";
[self.webService start];
// do other things
}
- (WebService*)webService
{
if (!webService)
{
webService = [[WebService alloc] init];
}
return webService;
}
@end
【问题讨论】:
-
我想我要将我的类方法更改为常规方法,并在调用该方法之前对其进行实例化。 Grrrr Objective C 就是这么弱的语言。没有私有的、公共的、静态的、抽象的、虚拟的、受保护的、代码注释:(
标签: objective-c static-variables class-method