【问题标题】:Singleton pattern for sharing data between objects用于在对象之间共享数据的单例模式
【发布时间】:2012-03-01 17:52:45
【问题描述】:

我正在尝试使用单例模式在对象周围传递数据。这是我的代码

搜索数据.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.

这里有什么问题? 如何将数据传递给 aName ivar?

【问题讨论】:

    标签: objective-c ios singleton


    【解决方案1】:

    在您的aName 声明中,您是否将NSString 错误输入为NSStream?奇怪的事情发生了。

    【讨论】:

    • 是的... aName 被声明为 NSStream 而不是 NSString
    • 太棒了!很高兴我能帮上忙。您可以通过单击左侧的小复选标记将答案标记为已接受。非常感谢!
    【解决方案2】:

    因为 searchdata (NSStream) 不会进入 NSString。 试试:

    [[NSString alloc] initWithData:searchData ...
    

    【讨论】:

      猜你喜欢
      • 2022-10-14
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多