一、数字对象
1.数据类型与数字对象的区别?
基本数据类型有:int型,float型,long型。但它们不是对象,不能够向他们发送消息
如果希望基本数据类型存储到对象中,可以使用NSNumber类,它会依据这些数据的类型来创建对象。
2.数字对象的创建和初始化方法
第一种方法:使用"创建和初始化方法"
这些方法以numberWith开头,紧接数据的类型,如numberWithLong: , numberWithFloat等。
例:
NSNumber *myNumber;
myNumber = [NSNumber numberWithInt: 100];
第二种方法:使用"初始化实例方法"
使用实例方法将以前创建的NSNumber对象设置为指定的值,这些方法以initWith开头,如initWithLong:,initWithFloat等
例:
NSNumber *myNumber;
myNumber = [[NSNumber alloc] initWithInt : 50];
3.数字对象的检索
检索实例的方法使用实例方法:数据类型+Value。比如:charValue,shortValue,intValue等。
例:
NSNumber *myNumber = [NSNumber numberWithInt : 100];
myInt = [myNumber intValue];
NSLog(@"%i",[myNumber intValue]);
打印输出: 100
4.实例方法isEqualToNumber和compare这二个方法的使用
isEqualToNumber:是比较二个NSNumber对象的数值。程序会返回一个BOOL值,查看这二个值是否相等。
compare:测试一个值是否在数值上小于,等于或大于另一个值。
例:[intNumber compare: floatNumber];
如果intNumber的数值小于floatNumber的数值,返回NSOrderedAscending
如果intNumber的数值大于floatNumber的数值,返回NSOrderedDscending
如果intNumber的数值等于floatNumber的数值,返回NSOrderedSame
Return a set containing the results of invoking valueForKey:
on each of the receiving set's members.
The name of one of the properties of the receiving set's members.
A set containing the results of invoking valueForKey:
(with the argument key) on each of the receiving set's members.
The returned set might not have the same number of members as the receiving set. The returned set will not contain any elements corresponding to instances of valueForKey:
returning nil
(note that this is in contrast with NSArray
’s implementation, which may putNSNull
values in the arrays it returns).
Invokes setValue:forKey:
on each of the set’s members.
The value for the property identified by key.
The name of one of the properties of the set's members.