iOS单例共享实例并加载远程json数据

时间:2013-05-24 15:00:29

标签: ios objective-c singleton

这是我的情况:

// data.m
@property (nonatomic, strong) NSMutableArray *jsonData;

+ (Data *)sharedData
{
    static Data *sharedData;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^
    {
        _sharedData = [[Data alloc] init];
    });

    return _sharedData;
}

- (id)init
{
    self = [super init];
    if (self)
    {
        [self clear];
        [self load]; // here i start loading my remote JSON data and fill self.jsonData
    }

    return self;
}

我有

// main.m 
[Data sharedData].jsonData; // this return nil

jsonData返回nil,我认为因为对服务器的请求还没有完成.. 如何等到远程请求完成后我该怎么做?

感谢。

编辑:

这是我的加载方法

[[ApiClient sharedClient] loadDataWithSuccess:^(NSMutableArray *data)
{     
    self.jsonData = data;
}
                                         fail:^(NSString *errorMessage)
{
    NSLog(@"%@", errorMessage);
}];

loadDataWithSuccess返回void。

0 个答案:

没有答案