【发布时间】:2011-02-22 19:19:00
【问题描述】:
我的单例类中有以下代码
static MySingleton *gManager;
+(void)initialize
{
if(self == [MySingleton class])
{
gManager = [[MySingleton alloc] initWithServices:[[MyServices alloc] init]];
}
}
+(MySingleton *)sharedInstance
{
return (gManager);
}
不幸的是,在单元测试期间,我看到 gManager 是 SenTestCaseRun 类型的实例。我似乎无法弄清楚为什么? 所以像这样的电话 [[MySingleton sharedInstance] myFunction];
导致 myFunction 是未知选择器的错误,尽管它存在于 MySingleton 类中。
它是 SenTestCaseRun 类型,因为我使用 NSStringFromClass 函数进行了检查。
有什么建议吗?已经为此敲了 3-4 个小时的头:(。
【问题讨论】:
-
我不知道这是什么语言,但实际上看起来不像
C -
我认为 OP 在标签框中输入了
objective c。修好了。 -
它是客观的 C。我在标签中添加了它。我怎样才能让它更清楚?
-
@user628921:像 larsmans 更正:
objective-c
标签: objective-c unit-testing singleton static-initializer