集合,類似于java中的集合容器,是一類數據結構,能很好的管理和操作數據
1.數組
來自開發者iphone distribution, NSArray 與NSMutableArray,C語言的數組長度不可變,使用起來很麻煩
NSObject ->NSArray - >NSMutableArray
NSString *names[6];//NSString實例數組
iphone開發者模式。 NSArray
+(id)arrayWithObject:(id)object
指定對象object,創建實例
使用例子:
NSString *string = @”name“;
NSArray *array = [NSArray arrayWithObject:string];//指定一個對象創建數組
NSArray +(id)arrayWithObjects:(id)firstObj,···
-(id)initWithObjects:(id)firstObj,···
指定多個對象,創建實例,將最后一個參數指定為nil
NSArray *array;
array = [NSArray arrayWithObjects:@"Tom",@"Blacks",@"Smith",nil];
//數組array中含有Tom,Blacks,Smith,千萬不要忘記最后一個為nil
數組的長度:NSArray -(unsigned)count 取得數組元素個數
通過索引取得對象:NSArray -(id)objectAtIndex:(unsigned)index ->[array objectAtIndex:1];
例子:for(int i = 0; i< [array count];i++){
NSLog([array objectAtIndex:i]);
}
使用NSEnumerator取得對象,也稱為枚舉法
NSEnumerator -(id)nextObject 取得當前對象的下一個對象
?
NSArray -(NSEnumerator *)objectEnumerator 取得枚舉對象
例子:
NSArray *array;
array = [NSArray arrayWithObjects:@"Tom",@"Blacks",@"Smith",nil];
NSEnumerator *enumerator;
enumerator = [array objectEnumerator];
NSString *str;
while(str = [enumerator nextObject]){
NSLog(str);
}
高效枚舉法:for(變量定義 in 對象集合){
}
for(NSString *str in array){
NSLog(str);}
?
對象的追加和刪除:
創建空數組:NSArray +(id)array 創建內容為空的實例
追加對象的方法在NSMutableArray中定義:
-(void)addObject:(id)object;追加對象object
-(void)addObjectsFromArray:(NSArray *)array 追加數組array中的所有對象
-(void)inertObject:(id)object atIndex:(unsigned)index?在索引index處插入對象object
-(void)replaceObjectAtIndex:(unsigned)index withObject:(id)object?將index處的對象替換成對象object
-(void)setArray:(NSArray *)array 將數組所有的對象替換為數組array中的元素
對象的刪除:也在NSMutableArray中定義:
-(void)removeAllObjects 清空
-(void)removeLastObject 刪除最后一個
-(void)removeObjectAtIndex:(usigned)index 刪除指定位置
-(void)removeObject:(id)object 相同值對象刪除
-(void)removeObjectIdenticalTo:(id)object 等價對象刪除
-(void)removeObjectsInArray:(NSArray *)array 刪除array數組中包含的元素相同的元素
字典類型
NSDictionary,NSMutableDictionary 是鍵值對集合,一樣,前者不可變長,后者可變長
NSObject ->NSDictionary ->NSMutableDictionary
NSDictionary的創建
一個鍵值對創建NSDictionary實例
NSDictionary +(id)dictionaryWithObject:(id)object forKey:(id)key 一般用到的很少,只有一對
指定多個:
NSDictionary +(id)dictionaryWithObjects:(NSArray *)objects forKeys:(NSArray *)keys
-(id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys
以上是兩個士指定值的數組object與鍵 的數組key創建Dictionary實例
+(id)dictionaryWithObjectsAndKeys:(id)firstObj···
- (id)initWithOjectsAndKeys:(id)firstObj···
以上兩個是多個鍵值對創建NSDictionary實例,最后一個參數必須為nil
下面是例子:
NSArray *keys = [NSArray arrayWithObjects:@"CPU",@"Memory",@"OS",nil];
NSArray *objects? = [NSArray arrayWithObjects:@"Core 2 Duo",@"2GB",@"Mac X OS 10.6",nil];
NSDictionary *dict0?= [NSDictionary dicitonaryWithObjects:objects forKeys:keys];//以2個數組形式來創建
NSDicitonary *dict1 ;//以列舉鍵值對的方式創建
dict1 = [NSDictionary?dictionaryWithObjectsAndKeys:@"CPU",@"Core 2 Duo",@"Memory",@"2GB",@"OS",@"Mac X OS 10.6",nil];
鍵值的取得:
通過指定鍵來取得值:NSDictionary -(id)objectForKey:(id)Key 當不存在時返回nil
取得全部的鍵與值:NSDictionary -(NSArray *)allkeys 以數組的形式返回所有的鍵
-(NSEnumerator *)keyEnumerator 返回包含所有鍵的枚舉對象
-(NSArray *)allValues 以數組形式返回所有的值
-(NSEnumerator *)valueEnumerator 返回所有值的枚舉對象
例子:
NSDictionary *dict = [NSDictionary dictionaryWithObejctsAndKeys:@"Cpu",@"core 2",@"Memory",@"2GB",@"OS",@"Mac",nil];
NSEnumerator *enumerator = [dict keyEnumerator];
NSString *key;
while(key = [enumerator nextObject]){
NSString *value;
value = [dict objectForKey key];
????? NSLog(@"key is %@,value is%@",key,value);
}
鍵值追加:
那是必然要用NSMutableDictionary類
生成空字典:繼承與NSDictionary的 +(id)dictionary
NSMutableDictionary -(void)setObject:(id)object forKey:(id)key? 鍵值均不為空,鍵在字典中唯一,若已存在,則刪除舊值,追加新值。
刪除鍵值對:
NSMutableDitionary -(void)removeAllObjects 刪除所有鍵值對
-(void)removeObjectForkey:(id)key 刪除與key鍵關聯的鍵值對
-(void)removeObjectsForKeys:(NSArray *)keyArray 刪除與鍵數組keyArray中元素同值 的所有鍵的鍵值對
?
包裝類:
包裝類,就是包裝基本數據類型的,java中也有,把基本數據類型封裝成一個類,包裝類明兒再學習。。。。
?
?
?
?