第15章:数字,字符串和集合

来源:互联网 发布:网络安全技术与实践 编辑:程序博客网 时间:2024/05/01 05:45

一、数字对象 

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


二、集合对象
集合是一组单值的对象集合,它可以是可变的,也可以是不可变的。
此处怎样理解"单值的对象"呢?也就是说集合中相同的对象只有一个
有关集合的类有三个:NSSet,NSMutableSet,NSIndexSet

NSSet:存储值不可变的单值的对象集合
1.创建集合
+ set
创建并返回一个空的集合
例:
NSSet *mySet = [NSSet set];   //创建一个空的集合
mySet = [mySet setByAddingObject: @"one"];   //向集合中添加一个对象 
for(NSString *elem in mySet)
    NSLog(@"%@",my);

输出结果:  one


+ setWithArray:
+ setWithObject:
+ setWithObjects:
+ setWithObjects:count
+ setWithSet:


2.初始化集合
- init
- initWithArray:
- initWithObjects:
- initWithObjects: count:
- initWithSet:
- initWithSet: copyItems

3.集合比较
- (BOOL) isSubsetOfSet:nsset
确认接收者的每个成员是否都在集合内
- (BOOL)interssetsSet:nsset
确认接收者中是否至少含有一个成员出现在集合中
- (BOOL)isEqualToSet:nsset
确定两个集合是否相等
- (id) valueForKey:(NSString *)key

Return a set containing the results of invoking valueForKey: on each of the receiving set's members.

- (id)valueForKey:(NSString *)key
Parameters
key

The name of one of the properties of the receiving set's members.

Return Value

A set containing the results of invoking valueForKey: (with the argument key) on each of the receiving set's members.

Discussion

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).

- setValue: forKey:

Invokes setValue:forKey: on each of the set’s members.

- (void)setValue:(id)value forKey:(NSString *)key
Parameters
value

The value for the property identified by key.

key

The name of one of the properties of the set's members.









0 0
原创粉丝点击