2012-06-26 2 views
0

Я пытаюсь извлечь int внутри экземпляра NSValue/. Я пытался бросить их таким образом, но это не сработало:Получение int из NSConcreteValue/NSValue

NSValue *toValue = (NSValue *)someValue; 
    NSNumber *toNumber = (NSNumber*)toValue; 
    int final = [toNumber intValue]; 

Я также попытался использовать getValue но также не работает для меня.

+0

Что такое 'someValue' изначально? Почему вы передаете его в «NSValue»? Когда вы говорите «не работает», какая ошибка вы получаете? –

ответ

5

Вы уверены, что int был сохранен в нем? Если да, вы можете получить его с:

int final = 0; 
[someValue getValue:&final]; 

вы знаете, вы можете задать NSValue его тип с

[value objCType] 

который возвращает константный символ *

ура, Йорг

+0

Я, кажется, получаю ошибку 'EXEC_BAD_ACCESS', когда я это делаю, хотя когда я заканчиваю' NSLog', я получаю правильное значение int. –

+0

делает 'int * final; [someValue getValue: final]; 'работа? вы должны были бы ввести int через f.e. 'NSLog (@"% d ", * final)' ... –

+0

и что означает 'NSLog (@"% s ", [значение objCType]);' на самом деле печатать? –