Рассмотрим код ниже
id j = @"123"; NSUInteger a = [j unsignedIntValue]; // not working NSUInteger b = [j intValue]; // works
Почему при преобразовании объекта NSString в целое число без знака работает только intValue?
intValue
Это потому, что unsignedIntValue - это метод NSNumber, в то время как intValue присутствует в NSNumber и NSString.
unsignedIntValue
NSNumber
NSString
unsignedIntValue - это метод класса NSNumber, а не NSString.
Так что, когда вы вызовете unsignedIntValue для объекта NSString, он не сможет связать вашвызов объекта и функции.