標籤:des io ar os sp for on div log
//
#import <Foundation/Foundation.h>
#import "Animal.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//1. 建立方法
//2. 排序
//3. 取元素
//4. 串連,分隔
//5. 強引用
//6. for...in
Animal *ani = [[Animal alloc] init];
ani.age = 12;
//建立一個有三個元素的OC不可變數組
//不可變數組的元素不能再變
// NSArray *arr1 = @[@12, @"34", ani];
// NSLog(@"%lu", arr1.count);
// NSLog(@"%@", arr1);
//不是修改數組
ani.age = 20;
Animal *ani10 = [[Animal alloc] init];
ani10.age = 5;
Animal *ani11 = [[Animal alloc] init];
ani11.age = 48;
NSArray *arr1 = @[ani, ani10, ani11];
NSLog(@"%@", arr1);
//排序,只需要實現兩兩之間比較的方法
//SEL
NSArray *arr10 = [arr1 sortedArrayUsingSelector:@selector(myCompare:)];
// NSLog(@"%@", arr10);
//依次執行print
[arr10 makeObjectsPerformSelector:@selector(print)];
//可以傳遞一個參數
[arr10 makeObjectsPerformSelector:@selector(call:) withObject:@"Zhangsan"];
//產生新數組,並且參數作為最後一個元素
NSArray *arr30 = [arr10 arrayByAddingObject:@"aa"];
NSLog(@"%p, %p", arr10, arr30);
NSString *str10 = @"a.b.c";
//分割字串
NSArray *arr40 = [str10 componentsSeparatedByString:@"."];
NSLog(@"%@", arr40);
//連接字串
NSString *str11 = [arr40 componentsJoinedByString:@"<+>"];
NSLog(@"%@", str11);
// NSArray *arr20 = @[@123, @"234", @345];
// [arr20 writeToFile:@"/Users/apple/Desktop/test.plist" atomically:YES];
//
// NSArray *arr21 = [NSArray arrayWithContentsOfFile:@"/Users/apple/Desktop/test"];
// NSLog(@"%@", arr21);
return 0;
NSNumber *num1 = arr1[0];
NSLog(@"%@", num1);
Animal *ani2 = [[Animal alloc] init];
ani2.age = 20;
NSNumber *num2 = @34;
//檢查是否包含某個對象
if([arr1 containsObject:num2]) {
NSLog(@"在arr1中");
//擷取對象的位置
NSUInteger index = [arr1 indexOfObject:ani2];
NSLog(@"%lu", index);
if (NSNotFound == index) {
NSLog(@"沒zhaodao ");
}
}
else {
NSLog(@"不在");
}
return 0;
NSLog(@"%lu", arr1.count);
// ani = nil;
//nil表示參數結束
//數組中不能裝nil對象
arr1 = [[NSArray alloc] initWithObjects:@90, ani, @80, nil];
NSLog(@"%@", arr1);
// id cArr[4];
// cArr[0] = @"abc";
// cArr[1] = @"efg";
// cArr[2] = ani;
// cArr[3] = @"xxx";
// arr1 = [[NSArray alloc] initWithObjects:cArr count:4];
// NSLog(@"%@", arr1);
//建立一個數組,並且用arr1中的元素初始化
//實際上數組裡裝的是對象的指標,數組會對裝入其中的對象產生一個強引用
NSArray *arr2 = [NSArray arrayWithArray:arr1];
NSLog(@"%lu", arr2.count);
//根據位置擷取對象
// NSLog(@"%@", arr2[1]);
NSLog(@"%@", [arr2 objectAtIndex:arr2.count - 1]);
//擷取第0個元素
NSLog(@"%@", [arr2 firstObject]);
//擷取最後一個元素
NSLog(@"%@", [arr2 lastObject]);
NSLog(@"------");
for (int i = 0; i < arr2.count; ++i) {
NSLog(@"%@", arr2[i]);
}
//兩個類型
//1. 編譯時間類型,指標的類型
//2. 運行時類型,對象的類型
NSLog(@"+++++");
arr2 = @[@12, ani, @34];
//快速枚舉
for (id obj in arr2) {
//檢查一個對象是否為NSNumber類型
if ([obj isKindOfClass:[NSNumber class]]) {
NSNumber *num = (NSNumber *)obj;
NSLog(@"%d", num.intValue);
}
else if ([obj isKindOfClass:[Animal class]]){
Animal *animal = (Animal *)obj;
NSLog(@"age: %d", animal.age);
}
// obj.age = 20;
}
ani = nil;
arr1 = nil;
arr2 = nil;
NSLog(@"xxxxxxx");
}
NSLog(@"-----");
return 0;
}
ios 中NSArray