Oc集合
来源:互联网 发布:淘宝定制可以退款吗 编辑:程序博客网 时间:2024/06/05 01:08
在Foundation中,数组是有序的对象的集合,用来存储对象的有序列表
NSArray中不能存放C语言类型
可以使用NSNumber来转换数据类型
eg:[NSNumber numberWithInt: int ]; //整型转换
NSArray类
创建:
-(id) initWithObjects:(id)firstObject,…….//实例方法
eg: NSArray *array = [ [NSArray alloc ] initWithObjects:@“ ”,….. nil ];
+(id)arrayWithObjects:(id) firstObject, ….; //类方法
eg:NSArray *array = [NSArray arrayWithObjects: @“ “, …. nil ];
获取数组元素个数
-(NSUInteger)count;
eg: int count = [array count];
获取数组元素
-(id) objectAtIndex : (NSUInteger) index;
eg: NSString *string = [数组 objectAtIndes:__索引值__];
注意:数组越界,数组会对加入其中的对象自动把引用计数加一,不能在数组中存放nil
NSMutableArray 类
初始化:
-(id) initWithCapacity: (NSUInteger) numItems;
-(id) arrayWithCapacity: (NSUInteger) numItems;
增加对象:
-(void)addObject: (id) anObject; //在数组的末尾加入一个对象
删除对象:
-(void) removeAllObjects: //所有
-(void) removeLastObject; //最后一个
-(void) removeObjectAtIndex: (NSUInteger) index; //索引
替换:
-(void) replaceObjectAtIndex: (NSUInteger)index withObject: (id)anObject;
-(void) insertObject:(id)anObject atIndex:(NSUInteger) index;
数组的排序:
不可变数组: -(NSArray *)sortedArrayUsingDescriptors:(NSArray *) sortDescriptors; //参与比较的对象
-(NSArray *)sortedArrayUsingComparator:(NSArray *) sortDescriptors; //代码快
-(NSArray *)sortedArrayUsingSelector:(NSArray *) sortDescriptors; //自定义
可变: -(void) sortUsingDescriptors:(NSArray *)sortDescriptors;
-(void) sortUsingDescriptors:(NSArray *)sortDescriptors;
-(void) sortUsingDescriptors:(NSArray *)sortDescriptors;
eg:
定义一个排序描述符的对象
NSSortDescriptor *sd1 = [NSSortDescriptorsortDescriptorWithKey:@"name"ascending:YES ]; 定义一个数组,然后用来盛放排序条件 NSArray *array = [NSArrayarrayWithObject:sd1]; 进行排序 [mArraysortUsingDescriptors:array];
获取枚举器:
-(NSEnumerator *) objectEnumerator;
eg: NSEnumerator*enumerator = [arrayobjectEnumerator ];
//数组个数以被记录,后面不能操作增,删
使用枚举器遍历数组,通过while循环来遍历
eg: idobj;
while (obj = [enumeratornextObject]){
NSLog(@“%@“, obj);
}
快速枚举:
for(id objin array){
NSLog(@“%@“, obj);
} / / id类型的变量obj存放的是数组array里的元素
字典:NSDictionary
字典采用的健查询的优化存储方式
创建:
-(id)dictionaryWithObjectsAndKeys: (id)obj,……;//参数是成对的,顺序是对象和健,最后加一个nil,表示结束,键值不能重复
取值:
-(id)objectForKey:(id)aKey;
NSMutableDictionary:
创建:
+(id)dictionaryWithCapacity:(NSUInteger)num;
添加:
-(void) setObject: (id) obj forKey:(id) aKey; //如原来就有的健,会覆盖
删除:
-(void)removeObjectForKey:(id) aKey;
遍历:
-(NSArray *)allKeys: //得到字典的所有Key值
NSSet类:
不能存放相同的对象,数据是无序的
创建:
-(id) initWithObjects:(id) firstObject, ……;
+(id) setWithObjects:(id) firstObject,…….;
获取个数:
-(NSUInteger)count;
获取元素:
-(NSArray *) allObjects;
-(id) anyObject;
判断方法:
-(BOOL) isEqualToSet: (NSSet *) otherSet;
-(BOOL) member: (id) obj; //判断本集合中是否包含对象obj
NSMutabelSet类:
创建:
-(id) initWithCapacity:(NSUInteger) numItem;
+(id) setWithCapacity:(NSUInteger) numItem;
添加:
-(void)addObject: (id) object;
删除:
-(void) removeAllObject;
-(void) removeObject: (id) object;
数值数据: NSNumber
创建:
+(NSNumber*) numberWithChar: (char) value;
+(NSNumber*) numberWithInt: (int) value;
+(NSNumber*) numberWithFloat: (float) value;
+(NSNumber*) numberWithBool: (BOOL) value;
eg: NSNumber* number = [NSNumber numberWithInt: 3];
[array addObject: number];
[dict setObject: number forKey: @”my”];
获取值:
-(char) charValue;
- (int) intValue;
-(float) floatValue;
-(BOOL) boolValue;
(NSString *) stringValue;
eg:NSNumber *number = [NSNumber numberWithInt:3];
int number = [number intValue];
NSValue:针对结构体来使用的
创建:
+(NSValue *)valueWithBytes:(const void *)valueobjCType:(const char *)type;
eg: NSRect rect = NSRect(5,5,100,100);
NSValue *value = [valueWithBytes:&rect objCType:@encode(NSRect)];
[array addObject: value];
获取值:
-(void)getValue:(void *) value;
eg:NSValue *value = [array objectAtIndex:0];
[NSRect rect1];
[value getValue:&rect1];
NSNull;封装nil空值
+(NSNull *)null;
eg:[array addObject:[NSNull null]];
id nullValue = [array objectAtIndex:0];
if(nullValue == [NSNull null]){
//判断是否为空
}
NSArray中不能存放C语言类型
可以使用NSNumber来转换数据类型
eg:[NSNumber numberWithInt: int ]; //整型转换
NSArray类
创建:
-(id) initWithObjects:(id)firstObject,…….//实例方法
eg: NSArray *array = [ [NSArray alloc ] initWithObjects:@“ ”,….. nil ];
+(id)arrayWithObjects:(id) firstObject, ….; //类方法
eg:NSArray *array = [NSArray arrayWithObjects: @“ “, …. nil ];
获取数组元素个数
-(NSUInteger)count;
eg: int count = [array count];
获取数组元素
-(id) objectAtIndex : (NSUInteger) index;
eg: NSString *string = [数组 objectAtIndes:__索引值__];
注意:数组越界,数组会对加入其中的对象自动把引用计数加一,不能在数组中存放nil
NSMutableArray 类
初始化:
-(id) initWithCapacity: (NSUInteger) numItems;
-(id) arrayWithCapacity: (NSUInteger) numItems;
增加对象:
-(void)addObject: (id) anObject; //在数组的末尾加入一个对象
删除对象:
-(void) removeAllObjects: //所有
-(void) removeLastObject; //最后一个
-(void) removeObjectAtIndex: (NSUInteger) index; //索引
替换:
-(void) replaceObjectAtIndex: (NSUInteger)index withObject: (id)anObject;
-(void) insertObject:(id)anObject atIndex:(NSUInteger) index;
数组的排序:
不可变数组: -(NSArray *)sortedArrayUsingDescriptors:(NSArray *) sortDescriptors; //参与比较的对象
-(NSArray *)sortedArrayUsingComparator:(NSArray *) sortDescriptors; //代码快
-(NSArray *)sortedArrayUsingSelector:(NSArray *) sortDescriptors; //自定义
可变: -(void) sortUsingDescriptors:(NSArray *)sortDescriptors;
-(void) sortUsingDescriptors:(NSArray *)sortDescriptors;
-(void) sortUsingDescriptors:(NSArray *)sortDescriptors;
eg:
定义一个排序描述符的对象
NSSortDescriptor *sd1 = [NSSortDescriptorsortDescriptorWithKey:@"name"ascending:YES ]; 定义一个数组,然后用来盛放排序条件 NSArray *array = [NSArrayarrayWithObject:sd1]; 进行排序 [mArraysortUsingDescriptors:array];
获取枚举器:
-(NSEnumerator *) objectEnumerator;
eg: NSEnumerator*enumerator = [arrayobjectEnumerator ];
//数组个数以被记录,后面不能操作增,删
使用枚举器遍历数组,通过while循环来遍历
eg: idobj;
while (obj = [enumeratornextObject]){
NSLog(@“%@“, obj);
}
快速枚举:
for(id objin array){
NSLog(@“%@“, obj);
} / / id类型的变量obj存放的是数组array里的元素
字典:NSDictionary
字典采用的健查询的优化存储方式
创建:
-(id)dictionaryWithObjectsAndKeys: (id)obj,……;//参数是成对的,顺序是对象和健,最后加一个nil,表示结束,键值不能重复
取值:
-(id)objectForKey:(id)aKey;
NSMutableDictionary:
创建:
+(id)dictionaryWithCapacity:(NSUInteger)num;
添加:
-(void) setObject: (id) obj forKey:(id) aKey; //如原来就有的健,会覆盖
删除:
-(void)removeObjectForKey:(id) aKey;
遍历:
-(NSArray *)allKeys: //得到字典的所有Key值
NSSet类:
不能存放相同的对象,数据是无序的
创建:
-(id) initWithObjects:(id) firstObject, ……;
+(id) setWithObjects:(id) firstObject,…….;
获取个数:
-(NSUInteger)count;
获取元素:
-(NSArray *) allObjects;
-(id) anyObject;
判断方法:
-(BOOL) isEqualToSet: (NSSet *) otherSet;
-(BOOL) member: (id) obj; //判断本集合中是否包含对象obj
NSMutabelSet类:
创建:
-(id) initWithCapacity:(NSUInteger) numItem;
+(id) setWithCapacity:(NSUInteger) numItem;
添加:
-(void)addObject: (id) object;
删除:
-(void) removeAllObject;
-(void) removeObject: (id) object;
数值数据: NSNumber
创建:
+(NSNumber*) numberWithChar: (char) value;
+(NSNumber*) numberWithInt: (int) value;
+(NSNumber*) numberWithFloat: (float) value;
+(NSNumber*) numberWithBool: (BOOL) value;
eg: NSNumber* number = [NSNumber numberWithInt: 3];
[array addObject: number];
[dict setObject: number forKey: @”my”];
获取值:
-(char) charValue;
- (int) intValue;
-(float) floatValue;
-(BOOL) boolValue;
(NSString *) stringValue;
eg:NSNumber *number = [NSNumber numberWithInt:3];
int number = [number intValue];
NSValue:针对结构体来使用的
创建:
+(NSValue *)valueWithBytes:(const void *)valueobjCType:(const char *)type;
eg: NSRect rect = NSRect(5,5,100,100);
NSValue *value = [valueWithBytes:&rect objCType:@encode(NSRect)];
[array addObject: value];
获取值:
-(void)getValue:(void *) value;
eg:NSValue *value = [array objectAtIndex:0];
[NSRect rect1];
[value getValue:&rect1];
NSNull;封装nil空值
+(NSNull *)null;
eg:[array addObject:[NSNull null]];
id nullValue = [array objectAtIndex:0];
if(nullValue == [NSNull null]){
//判断是否为空
}
0 0
- OC集合
- Oc集合
- OC 集合
- OC - 集合
- OC数组字典集合
- oc集合类库
- C25_OC15-OC集合类
- 黑马程序员--oc:集合
- OC集合内存管理
- OC集合与字典
- OC-遍历集合类
- OC之集合
- OC--数组、字典、集合
- Foundation -- OC集合 --NSArray
- Foundation -- OC集合 --NSSet
- Foundation -- OC集合 --NSDictionary
- Foundation -- OC集合 --NSNumber
- Foundation -- OC集合 --NSDate
- HP(惠普)大中华区总裁孙振耀退休感言
- php mcrypt
- android从Activity中返回数据
- ftp网络通讯
- tv189获取影片地址的方法
- Oc集合
- 程式減肥三步走
- linux文件
- MyEclipse连接SQL Server 2008数据库的操作方法
- 谈谈我对mysql分表与分区的理解,启发那些经常模糊概念和难抉择的小伙伴
- php zip压缩
- android框架图
- 赛门铁克NetBackup 7.6:虚拟化时代
- 静态查找表与动态查找表