2012-02-09 4 views
0

Рассмотрим приведенный ниже кодunsignedIntValue против intValue

id j = @"123"; 
NSUInteger a = [j unsignedIntValue]; // not working 
NSUInteger b = [j intValue]; // works 

Почему при преобразовании объекта NSString в целое число без знака, только intValue работает?

ответ

10

Это потому, что unsignedIntValue представляет собой метод NSNumber, в то время как intValue присутствует в обоих NSNumber и NSString.

3

unsignedIntValue - метод класса NSNumber, а не NSString.

Таким образом, когда вы назовете unsignedIntValue на объект NSString, он не сможет связать ваш объект и вызов функции.

Смежные вопросы