Словарь Objective C не возвращает тот же номер - PullRequest
0 голосов
/ 06 января 2019

Я думаю, что что-то упускаю, но кто-то может увидеть, что я делаю не так? Почему возвращается 2030774160?

NSDictionary* json = [NSJSONSerialization
                      JSONObjectWithData:responseData //1

                      options:kNilOptions
                      error:&error];

NSDictionary* observation = [json objectForKey:@"observation"];
NSDictionary* imperial = [observation objectForKey:@"imperial"];
NSLog(@"value of a is : %@ !\n", [imperial objectForKey:@"temp"]);

self.forecastText.text =[observation objectForKey:@"phrase_22char"];
self.hi = [imperial objectForKey:@"temp_max_24hour"];
self.forecastHigh.text =[NSString stringWithFormat:@"%d", self.hi];

NSLog(@"value of a is : %@ !\n", self.hi);
NSLog(@"value of a is : %@ !\n", self.forecastHigh.text);

2019-01-06 11:20:15.246 TiP_Clock[2205:63494] ssssy.
2019-01-06 11:20:15.465 TiP_Clock[2205:63535] Data has loaded successfully.
2019-01-06 11:20:15.466 TiP_Clock[2205:63494] value of a is : 51 !
2019-01-06 11:20:15.466 TiP_Clock[2205:63494] value of a is : 58 !
2019-01-06 11:20:15.466 TiP_Clock[2205:63494] value of a is : 2030774160 !

1 Ответ

0 голосов
/ 06 января 2019
self.hi = [imperial objectForKey:@"temp_max_24hour"];

Это делает self.hi (указатель на) NSNumber.

self.forecastHigh.text =[NSString stringWithFormat:@"%d", self.hi];

Это делает self.forecastHigh.text целочисленной интерпретацией указателя на NSNumber, который является некоторым полуслучайным целым числом.

Что вы, вероятно, имели в виду здесь, учитывая другой код, было:

self.forecastHigh.text =[NSString stringWithFormat:@"%@", self.hi];

Хотя это может быть более ясным как эквивалент:

self.forecastHigh.text = self.hi.stringValue;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...