Инициализация объекта 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);
Немає коментарів:
Дописати коментар