Iphone數組一些基礎操作 NSArray/NSMutableArray,以及記憶體注意問題。

來源:互聯網
上載者:User
/*******************************************************************************************     NSArray     *******************************************************************************************/    /*---------------------------建立數組------------------------------*/    //NSArray *array = [NSArray alloc] initWithObjects:    @"One",@"Two",@"Three",@"Four",nil];    self.dataArray = array;    [array release];    //- (unsigned) Count;數組所包含對象個數;    NSLog(@"self.dataArray cound:%d",[self.dataArray count]);    //- (id) objectAtIndex: (unsigned int) index;擷取指定索引處的對象;    NSLog(@"self.dataArray cound 2:%@",[self.dataArray objectAtIndex:2]);    /*--------------------------從一個數組拷貝資料到另一數組(可變數級)----------------------------*/        //arrayWithArray:    //NSArray *array1 = [NSArray alloc] init];    NSMutableArray *MutableArray = [NSMutableArray alloc] init];    NSArray *array = [NSArray arrayWithObjects:                      @"a",@"b",@"c",nil];    NSLog(@"array:%@",array);    MutableArray = [NSMutableArray arrayWithArray:array];    NSLog(@"MutableArray:%@",MutableArray);    array1 = [NSArray arrayWithArray:array];    NSLog(@"array1:%@",array1);    //Copy    //id obj;    NSMutableArray *newArray = [NSMutableArray alloc] init];    NSArray *oldArray = [NSArray arrayWithObjects:                         @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];    NSLog(@"oldArray:%@",oldArray);    for(int i = 0; i < [oldArray count]; i++)    {                obj = [oldArray objectAtIndex:i] copy];        [newArray addObject: obj];    }    //         NSLog(@"newArray:%@", newArray);    [newArray release];    //快速枚舉    //NSMutableArray *newArray = [NSMutableArray alloc] init];    NSArray *oldArray = [NSArray arrayWithObjects:                         @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];        NSLog(@"oldArray:%@",oldArray);    for(id obj in oldArray)    {        [newArray addObject: obj];    }    //         NSLog(@"newArray:%@", newArray);    [newArray release];        //Deep copy    //NSMutableArray *newArray = [NSMutableArray alloc] init];    NSArray *oldArray = [NSArray arrayWithObjects:                         @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];        NSLog(@"oldArray:%@",oldArray);        newArray = (NSMutableArray*)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFPropertyListRef)oldArray, kCFPropertyListMutableContainers);    NSLog(@"newArray:%@", newArray);    [newArray release];        //Copy and sort    //NSMutableArray *newArray = [NSMutableArray alloc] init];    NSArray *oldArray = [NSArray arrayWithObjects:                         @"b",@"a",@"e",@"d",@"c",@"f",@"h",@"g",nil];        NSLog(@"oldArray:%@",oldArray);    NSEnumerator *enumerator;    enumerator = [oldArray objectEnumerator];    id obj;    while(obj = [enumerator nextObject])    {        [newArray addObject: obj];    }    [newArray sortUsingSelector:@selector(compare:)];    NSLog(@"newArray:%@", newArray);    [newArray release];    /*---------------------------切分數組------------------------------*/    //從字串分割到數組- componentsSeparatedByString:    NSString *string = [NSString alloc] initWithString:@"One,Two,Three,Four"];    NSLog(@"string:%@",string);        NSArray *array = [string componentsSeparatedByString:@","];    NSLog(@"array:%@",array);    [string release];    //從數組合并元素到字串- componentsJoinedByString:    NSArray *array = [NSArray alloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil];    NSString *string = [array componentsJoinedByString:@","];    NSLog(@"string:%@",string);    /*******************************************************************************************     NSMutableArray     *******************************************************************************************/    /*---------------給數組分配容量----------------*/    //NSArray *array;    array = [NSMutableArray arrayWithCapacity:20];    /*--------------在數組末尾添加對象----------------*/    //- (void) addObject: (id) anObject;    //NSMutableArray *array = [NSMutableArray arrayWithObjects:    @"One",@"Two",@"Three",nil];    [array addObject:@"Four"];    NSLog(@"array:%@",array);    /*--------------刪除數組中指定索引處對象----------------*/        //-(void) removeObjectAtIndex: (unsigned) index;        //NSMutableArray *array = [NSMutableArray arrayWithObjects:    @"One",@"Two",@"Three",nil];    [array removeObjectAtIndex:1];    NSLog(@"array:%@",array);    /*-------------數組枚舉---------------*/        //- (NSEnumerator *)objectEnumerator;從前向後    //NSMutableArray *array = [NSMutableArray arrayWithObjects:    @"One",@"Two",@"Three",nil];    NSEnumerator *enumerator;    enumerator = [array objectEnumerator];    id thingie;    while (thingie = [enumerator nextObject]) {        NSLog(@"thingie:%@",thingie);    }    //- (NSEnumerator *)reverseObjectEnumerator;從後向前    //NSMutableArray *array = [NSMutableArray arrayWithObjects:    @"One",@"Two",@"Three",nil];    NSEnumerator *enumerator;    enumerator = [array reverseObjectEnumerator];    id object;    while (object = [enumerator nextObject]) {        NSLog(@"object:%@",object);    }    //快速枚舉    //NSMutableArray *array = [NSMutableArray arrayWithObjects:    @"One",@"Two",@"Three",nil];    for(NSString *string in array)    {        NSLog(@"string:%@",string);    }    /*******************************************************************************************     NSDictionary     *******************************************************************************************/    /*------------------------------------建立字典------------------------------------*/    //- (id) initWithObjectsAndKeys;    //NSDictionary *dictionary = [NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"Two",@"2",@"Three",@"3",nil];    NSString *string = [dictionary objectForKey:@"One"];    NSLog(@"string:%@",string);    NSLog(@"dictionary:%@",dictionary);    [dictionary release];    /*******************************************************************************************     NSMutableDictionary     *******************************************************************************************/    /*------------------------------------建立可變字典------------------------------------*/        //建立    NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];    //添加字典    [dictionary setObject:@"One" forKey:@"1"];    [dictionary setObject:@"Two" forKey:@"2"];    [dictionary setObject:@"Three" forKey:@"3"];    [dictionary setObject:@"Four" forKey:@"4"];    NSLog(@"dictionary:%@",dictionary);    //刪除指定的字典    [dictionary removeObjectForKey:@"3"];    NSLog(@"dictionary:%@",dictionary);    /*******************************************************************************************     NSValue(對任何對象進行封裝)     *******************************************************************************************/    /*--------------------------------將NSRect放入NSArray中------------------------------------*/        //將NSRect放入NSArray中    NSMutableArray *array = [NSMutableArray alloc] init];    NSValue *value;    CGRect rect = CGRectMake(0, 0, 320, 480);        value = [NSValue valueWithBytes:&rect objCType:@encode(CGRect)];    [array addObject:value];    NSLog(@"array:%@",array);    //從Array中提取    value = [array objectAtIndex:0];    [value getValue:&rect];    NSLog(@"value:%@",value);    /*******************************************************************************************     從目錄搜尋副檔名為jpg的檔案     *******************************************************************************************/    //NSFileManager *fileManager = [NSFileManager defaultManager];    NSString *home;    home = @"../Users/";    NSDirectoryEnumerator *direnum;    direnum = [fileManager enumeratorAtPath: home];    NSMutableArray *files = [NSMutableArray alloc] init];    //枚舉    NSString *filename;    while (filename = [direnum nextObject]) {        if([filename pathExtension] hasSuffix:@"jpg"]){            [files addObject:filename];        }    }    //快速枚舉    //for(NSString *filename in direnum)    //{    //    if([filename pathExtension] isEqualToString:@"jpg"]){    //        [files addObject:filename];    //    }    //}    NSLog(@"files:%@",files);    //枚舉    NSEnumerator *filenum;    filenum = [files objectEnumerator];    while (filename = [filenum nextObject]) {        NSLog(@"filename:%@",filename);    }    //快速枚舉    //for(id object in files)    //{    //    NSLog(@"object:%@",object);    //} 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.