Инициализация объекта NSNumber
Суть такова, что основные методы инициализации начинаются одинаково, но отличаются лишь конечным типом числа, т.е. что имеется в виду:
numberWith
Исходя из этого полное имя метода, для определенного типа числа, выглядит так:
numberWithBool numberWithChar numberWithDouble numberWithFloat numberWithInt numberWithInteger numberWithLong numberWithLongLong numberWithShort numberWithUnsignedChar numberWithUnsignedInt numberWithUnsignedInteger numberWithUnsignedLong numberWithUnsignedLongLong numberWithUnsignedShortНапример:
NSNumber *myFloat = [NSNumber numberWithFloat:10.09];
Возвращение и приведение к другому типу числа из переменной-объекта класса
boolValue charValue decimalValue doubleValue floatValue intValue integerValue longLongValue longValue shortValue unsignedCharValue unsignedIntegerValue unsignedIntValue unsignedLongLongValue unsignedLongValue unsignedShortValueНапример:
NSNumber *myFloat = [NSNumber numberWithDouble:10.09]; float floatValue = [myFloat floatValue]; NSLog(@"Value = %f", floatValue);
Сравнение числовых объектов
Для сравнения значения, хранящихся в объектах необходимо использовать isEqualToNumber метод. isEqualToNumber возвращает логическое значение в зависимости от содержания двух объектов. Например:
NSNumber *myFloat1 = [NSNumber numberWithDouble:10.09];
NSNumber *myFloat2 = [NSNumber numberWithDouble:10.08];
if ([myFloat1 isEqualToNumber: myFloat2]) {
NSLog(@"Numbers are equal");
} else {
NSLog(@"Numbers are not equal");
}
Или просто сравнить эти объекты методом compare:
NSNumber *myFloat1 = [NSNumber numberWithDouble:10.09];
NSNumber *myFloat2 = [NSNumber numberWithDouble:10.08];
NSComparisonResult result = [myFloat1 compare:myFloat2];
if (result == NSOrderedSame) {
NSLog(@"Numbers are equal");
} else if (result == NSOrderedAscending) {
NSLog(@"Float1 is less than Float2");
} else if (result == NSOrderedDescending) {
NSLog(@"Float1 is greater than Float2");
}
Конвертация числа в строку
NSNumber *myFloat = [NSNumber numberWithDouble:10.09]; NSString *myString = [myFloat stringValue]; NSLog (@"Number as string is %@", myString);
Немає коментарів:
Дописати коментар