【发布时间】:2017-10-16 16:40:09
【问题描述】:
我有这个代码:
在我的 .h 文件中
@property (nonatomic,strong) NSMutableDictionary *allInformation;
以米为单位。文件
我有这个代码...
+ (instancetype)sharedManager {
static id sharedData = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedData = [[[self class] alloc] init];
});
return sharedData;
}
-(void)buildJsonRequest{
self.allInformation = [[NSMutableDictionary alloc] init];
[OpenWeatherAPI fetchData:WEATHER_DATA
forZipCode:[valueSelected objectForKey:@"ZipCode"]
andCountry:countrySelected
usingUnits:API_METRIC_UNITS
withHandler:^(NSDictionary* weatherData){
[[[JsonParser sharedManager]allInformation] setObject:weatherData forKey:@"data"];
}];
[OpenWeatherAPI fetchData:FORECAST
forZipCode:[valueSelected objectForKey:@"ZipCode"]
andCountry:countrySelected
usingUnits:API_METRIC_UNITS
withHandler:^(NSDictionary* forecastData){
[[[JsonParser sharedManager]allInformation] forecastData forKey:@"data2"];
}];
}
当我尝试检索我的单身信息时,总是为零
另一个类...
- (instancetype)init
{
self = [super init];
if (self) {
NSDictionary *dataJson = [[JsonParser sharedManager]allInformation];
}
return self;
}
为什么 dataJson 总是为零??
我希望有一个 NSMutableDictionary 单例来保存不同的请求,例如:
- dataJson[0] Json 响应(NSDictionary)
- dataJson[1] 另一个 Json 响应 (NSDictionary)
【问题讨论】:
-
是 [JsonParser sharedManager] nil 还是 [[JsonParser sharedManager]allInformation] nil ?发布您的 sharedManager 方法。
-
dataJson 为空。当我尝试从单例获取信息时
-
所有信息都初始化了吗?
-
是的,如果我使用此代码 [[JsonParser sharedManager] setAllInformation:[forecastData mutableCopy]];工作正常但是当我尝试保存另一个 Json 请求时覆盖最后一个。
-
nsdictionary 会覆盖该值,即使您多次调用它(如果键相同)。
标签: ios objective-c json singleton