NSArray创建和使用
生活随笔
收集整理的這篇文章主要介紹了
NSArray创建和使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//
// main.m
// NSArray
//
// Created by dingxiaowei on 13-5-12.
// Copyright (c) 2013年 dingxiaowei. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Student.h"
void arrayCreate(){//靜態創建數組,a不需要我們管理內存NSArray *array=[NSArray array];array = [NSArray arrayWithObject:@"abc"];array=[NSArray arrayWithObjects:@"d",@"e",@"f",nil];NSLog(@"%@",array);NSLog(@"數組的元素個數:%zi",[array count]);
}void arrayUse(){NSArray *obj=[[[NSArray alloc] init] autorelease];NSArray *array=[NSArray arrayWithObjects:@"a",@"b",@"c",obj,nil];if([array containsObject:@"a"]){NSLog(@"數組中包含了a元素");}NSLog(@"最后一個元素是:%@",[array lastObject]);NSLog(@"第2個元素是:%@",[array objectAtIndex:1]);NSLog(@"c元素的位置:%zi",[array indexOfObject:@"c"]+1);
}
#pragma mark - 數組的內存管理
void arrayMemory(){Student *stu1=[[Student alloc] init];Student *stu2=[[Student alloc] init];Student *stu3=[[Student alloc] init];NSLog(@"stu1的計數器%i",[stu1 retainCount]);//注意:將一個OC對象塞給array之后,這個對象的計數器加1NSArray *array=[[NSArray alloc] initWithObjects:stu1,stu2,stu3,nil]; //注意:將一個OC對象塞給array之后,這個對象的計數器加1NSLog(@"stu1的計數器%i",[stu1 retainCount]);NSLog(@"元素個數:%zi",array.count);[stu1 release];[stu2 release];[stu3 release];[array release];
}
#pragma mark - 給數組里面的元素發送信息
void arrayMessage(){Student *stu1=[Student student];Student *stu2=[Student student];Student *stu3=[Student student];NSArray * array=[NSArray arrayWithObjects:stu1,stu2,stu3, nil];//靜態方法不需要我們管理內存//將array里面多有對象都調用一次test方法//[array makeObjectsPerformSelector:@selector(test)];[array makeObjectsPerformSelector:@selector(test:) withObject:@"123"]; //注意冒號也是方法名的一部分,這個頂多只支持傳一個參數
}#pragma mark - 遍歷數組1(基本for循環遍歷)
void arrayFor1(){Student *stu1=[Student student];NSArray * array=[NSArray arrayWithObjects:@"1",@"2",@"3",stu1,nil];//任何OC對象都可以塞進數組中int count=array.count; //得到數組的元素個數for(int i=0;i<count;i++){ //返回idid obj=[array objectAtIndex:i]; //id=void *NSLog(@"%->%@",i,obj);}
}
#pragma mark - 遍歷數組2(快速遍歷)
void arrayFor2(){Student *stu1=[Student student];NSArray * array=[NSArray arrayWithObjects:@"1",@"2",@"3",stu1,nil];//任何OC對象都可以塞進數組中//快速遍歷int i=0;for(id obj in array){NSLog(@"%->%@",i,obj);i++;}
}
#pragma mark - 遍歷數組3(用Block遍歷)
void arrayFor3(){Student *stu1=[Student student];NSArray * array=[NSArray arrayWithObjects:@"1",@"2",@"3",stu1,nil];//任何OC對象都可以塞進數組中//用Block遍歷[array enumerateObjectsUsingBlok:^(id obj,NSUinter idx,BOOL *stop){NSLog(@"%i-%@",idx,obj);if(idx==2){//利用指針變量修改外面BOOL的值*stop=YES;//調用指針參數 改變外面的變量 終止循環
}}];}
#pragma mark - 遍歷數組4(用迭代器遍歷)
void arrayFor4(){Student *stu1=[Student student];NSArray * array=[NSArray arrayWithObjects:@"1",@"2",@"3",stu1,nil];//任何OC對象都可以塞進數組中//用迭代器遍歷數組//獲取數組的迭代器NSEnumerator *enumerator=[array objectEnumerator];
// //取得下一個對象
// [enumerator nextObject];id obj=nil;if(obj=[enumerator nextObject]){NSLog(@"obj=%@",obj);}
// //返回迭代器中所有的元素
// [array allObjects];//注意:這個方法只能返回沒由遍歷過的,要使用這種方法返回所有的對象,就放在nextObject方法之前!!!NSArray * array2=[array allObjects];NSLog(@"array2:%@",array2);
}
int main(int argc, const char * argv[])
{@autoreleasepool {arrayCreate();arrayUse();arrayMemory();arrayFor1();arrayFor2();arrayFor3();arrayFor4();}return 0;
}
?
轉載于:https://www.cnblogs.com/dingxiaowei/archive/2013/05/13/3076005.html
總結
以上是生活随笔為你收集整理的NSArray创建和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xml编辑无提示?这么破!
- 下一篇: vue实战(9):总结二