Подтвердить что ты не робот

Как преобразовать значение NSUInteger в значение int в объекте C?

Как преобразовать значение NSUInteger в значение int в объекте C?

а также как печатать NSUInteger значение в NSLog, я пробовал %@,%d,%lu, они не работают и бросают ошибку Ex-Bad Access.

Спасибо

4b9b3361

Ответ 1

NSUInteger intVal = 10;
int iInt1 = (int)intVal;
NSLog(@"value : %lu %d", (unsigned long)intVal, iInt1);

для дополнительной справки, посмотрите здесь

Ответ 2

Явное преобразование в int

NSUInteger foo = 23;
int bar = (int)foo;

Хотя

NSLog(@"%lu",foo);

будет работать нормально в текущих сборках OSX. Это небезопасно, поскольку NSUInteger вводится как unsigned int в другие сборки. Например, iOS. Строгий ответ заключается в том, чтобы сделать его первым:

NSLog(@"%lu",(unsigned long)foo);

Ответ 3

Привет всем, что он работает для меня...

Я попробовал это.

NSUInteger  inbox_count=9;
NSLog(@"inbox_count=%d",(int)inbox_count);

//output   
inbox_count=9

Спасибо всем..

Ответ 4

Это просто, как это,

NSUInteger uintV = 890;
int intVal = (int) uintV;
NSLog(@"the value is : %lu", (unsigned long)intVal);


это напечатает что-то подобное,
значение: 890