來自開發者iphone distribution,iphone 開發第五天 - 集合

 2023-12-06 阅读 25 评论 0

摘要:集合,類似于java中的集合容器,是一類數據結構,能很好的管理和操作數據   1.數組 來自開發者iphone distribution,  NSArray 與NSMutableArray,C語言的數組長度不可變,使用起來很麻煩   NSObject ->NSArray - >NSMutableArray

集合,類似于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中也有,把基本數據類型封裝成一個類,包裝類明兒再學習。。。。

    ?

?

?

?

  

  

轉載于:https://www.cnblogs.com/niwococo/p/3415699.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/192869.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息