Ответ 1
Вы должны использовать [success intValue] == 1
. NSNumber - это класс, поэтому число - это указатель, а не прямое значение.
по следующему коду я получаю errormessage: Неявное преобразование 'int' в 'NSNumber *' запрещено ARC.
Что я делаю неправильно?
<pre>
<code>
NSDictionary *results = [jsonstring JSONValue];
NSNumber *success = [results objectForKey:@"success"]; // possible values for "success": 0 or 1
if (success == 1) { // ERROR implicit conversion of int to NSNumber disallowed with ARC
}
</code>
</pre>
Спасибо за любую помощь или подсказку!
Даниэль
Вы должны использовать [success intValue] == 1
. NSNumber - это класс, поэтому число - это указатель, а не прямое значение.
Erro, потому что вы сравниваете NSNumber
с int
.
Попробуйте -
if ([success isEqual:[NSNumber numberWithInt:1]])
или
if ([success intValue] == 1)
NSNumber
- это объект (т.е. указатель), поэтому вы не можете просто сравнить его с целым литералом типа 1
. Вместо этого вам нужно извлечь значение int
из числового объекта:
if ([success intValue] == 1) {
...
}
Если success
должно указывать логическое значение, вы можете попробовать это
NSDictionary *results = [jsonstring JSONValue];
NSNumber *success = [results objectForKey:@"success"];
if ([success boolValue]) {
// success!
}