用于在对象之间共享数据的单例模式
问题描述:
我试图使用单例模式传递对象周围的数据。这里是我的代码用于在对象之间共享数据的单例模式
SearchData.m
@implementation SearchData
@synthesize theName = _theName;
-(id)init
{
if(self = [super init])
{
_theName = @"Default";
}
return self;
}
static SearchData *sharedSingleton = NULL;
+(SearchData *)sharedSearchData
{
@synchronized(self)
{
if (sharedSingleton == NULL)
{
sharedSingleton = [[self alloc]init];
}
return sharedSingleton;
}
}
@end
FirstView.m
...
-(id)init
{
if (self = [super init])
{
SearchData *data = [SearchData sharedSearchData];
self.aName = [data theName];
}
return self;
}
...
的问题是,我得到
Incompatible pointer types sending NSString to parameter of type NSStream.
这里有什么问题? 如何将数据传递给名称ivar?
答
在您申报aName
时,您是否错误NSString
为NSStream
?奇怪的事情发生了。
答
因为searchdata(NSStream)没有进入NSString。 尝试:
[[NSString alloc] initWithData:searchData ...
是啊... aName被宣布为NSStream代替的NSString – OhDoh 2012-03-01 18:00:05
真棒!很高兴我能帮上忙。您可以点击左边的小复选标记将答案标记为已接受。非常感谢! – QED 2012-03-01 18:05:00