#pragma mark 創建數組
//1.通過對象方法創建數組
NSArray * array = [[NSArray alloc]initWithObjects:@"One",@"Two",@"Three",@"Four",@"Five", nil];
// NSLog(@"%@",array);
//nil表示空,本質是0,如果是基礎數據類型指針用NULL表,對象指向為空一般用nil表示 類對象為空用Nil;
// Class-->類類型
// SEL --> 選擇器
//通過類方法創建數組
NSArray * array1 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
//從Xcode4.6以后數允許用下述方法創建對象
//NSNumber @()快捷轉換基本數組類型到NSNumber對象
//有些公司不允許使用,為保持一致推薦使用對象方法或類方法創建的數組
Dog * dog = [[Dog alloc]init];
NSArray * array3 = @[@"One",@"Two",@"Three",@"Four",@"Five",dog];
//id-->完成指針-->接收任何數據類型的對象
//數組本身是一個對象
//數組的元素如@"One",@"Two",@"Three",@"Four",@"Five"等都是任意類型對象,不僅限於字符串
//創建數組對象時傳參,傳入的是對象的地址
//數組中只能存儲兌現搞得地址,而非存儲對象的本體
//同一個對象可以存放發兩個數組中,仍然是同一個對象.
//在一個數組中修改了對象,在另一個數組中讀取對象,會發現也被修改了
//數組可以存數組
//其實%@可以打印任何對象,只要對對象重寫description放來
NSLog(@"%@",array3);
#pragma mark 數組成員的個數
NSUInteger num = [array count];
NSLog(@"%lu",num);
#pragma mark 數組的成員
//0~n-1
//錯誤信息: index 5 beyond bounds [0 .. 4]'數組越界
NSString * str = [array objectAtIndex:3];
NSLog(@"%@",str);
//Xcode4.6 取數組成員
NSLog(@"%@",array[2]);
#pragma mark 獲取數組某元素在數組中的位置
NSUInteger index = [array1 indexOfObject:@"1"];
NSLog(@"%lu",index);
#pragma mark 判斷數組是否包含某個元素
BOOL tag = [array containsObject:@"Five"];
NSLog(@"%d",tag);
#pragma mark 獲取第一個元素/最后一個元素
NSString * str2 =[array1 firstObject];
NSString * str3 = [array1 lastObject];
NSLog(@"%@ %@",str2 , str3);
#pragma mark 將數組的元素進行拼接
// 只對字符串對象操作
NSString * str4 = [array componentsJoinedByString:@" "];
NSLog(@"%@",str4);
#pragma mark 將字符串進行拆分
NSString * str5 = @"YES,I am a so bad man";
//拆分字符串
NSArray * array4 = [str5 componentsSeparatedByString:@" "];
NSLog(@"%@",array4);
//拆分字符串,生成一堆新的子串,原字符串不變,該方法創建一個數組,將每個子串添加到當前數組中.
// NSCharacterSet * set = [NSCharacterSet characterSetWithCharactersInString:@", "];
NSArray * array5 = [str5 componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@", "]];
//set是集合
//[NSCharacterSet characterSetWithCharactersInString:@", "]這個方法創建一個集合的對象,返回對象地址,字符集合中的字符,來自字符串的@", "
NSLog(@"%@",array5);
#pragma mark 數組元素的混雜
Dog * dog1 = [[Dog alloc]init];
Cat * cat1 = [[Cat alloc]init];
Dog * dog2 = [[Dog alloc]init];
Cat * cat2 = [[Cat alloc]init];
Dog * dog3 = [[Dog alloc]init];
NSArray * array6 = @[dog1,cat1,dog2,dog3,cat2];
//判斷對象屬於某個類
//-(BOOL)isKindOfClass:(Class)class;
for (id obj in array6) {
if([obj isKindOfClass:[Dog class]]){
NSLog(@"B 哥");
}
if([obj isKindOfClass:[Cat class]]){
NSLog(@"小 龍");
}
}
