標籤:des 使用 os for io 時間
Obj-C只是增加了一點“特殊語料”的C語言,所以可以用printf()代替NSLog()。但我們建議使用NSLog,因為它添加了特性,例如時間戳記,日期戳和自動附加分行符號(‘\n’)等。
1.OC的數群組成員是任意的對象指標 與C中的鏈表結構類似(以nil結尾) 一切的數組操作不能越界
OC的數組分為不可變數組 NSArray 可變數組 NSMutableArray
- NSArray * array = [[NSArray alloc]initWithObjects:@"one",@"two",@"three", nil];
- NSLog(@"%@",[array objectAtIndex:0]);//通過下標擷取數群組成員(下標從0開始)
- NSLog(@"%ld",[array count]);//擷取數組有效成員個數 (不包括nil)
- for (i = 0; i < [array count]; i++) {//遍曆數組(C方法)
- NSLog(@"%@",[array objectAtIndex:i]);
- }
- NSLog(@"%@",array);//(OC)查看數組內容(先給array發送description訊息,然後給每個成員都發送一個description訊息)
- NSArray * array1 = [[NSArray alloc]initWithArray:array];//建立數組對象 相當於拷貝
- NSArray * arry2 = [NSArray arrayWithArray:array];//建立數組對象 相當於拷貝
- NSEnumerator * enumer = [array objectEnumerator];//正序列舉程式
- //建立一個列舉程式 把數組的每個元素的地址一次賦給列舉程式,然後建立起某種關聯 (列舉程式只能用來讀數群組成員)
- //枚舉時 會和數組建立某種關聯(修改監視器/迭代器) 限制枚舉的同時不能修改元素 只能讀不能寫
- id obj;
- //第一次迴圈把數組的第一個元素賦給obj 第二次迴圈把第二個數組元素賦給obj
- while (obj = [enumer nextObject]) { //遍曆數組
- NSLog(@"%@",obj);
- }
- //快速枚舉 第一次迴圈把array的第一個元素賦給ob 第二次迴圈把array的第二個元素賦給ob 直到nil(只能讀不能改)
- for(id ob in array){
- NSLog(@"%@",ob);
- }
- //逆序輸出數組(建立逆序列舉程式 第一次迴圈把最後一個元素賦給obj )
- NSEnumerator * enumer1 = [array reverseObjectEnumerator];
- while (obj = [enumer1 nextObject]) {
- NSLog(@"%@",obj);
- }
- if ([obj isKindOfClass:[Dog class]]) //擷取類的類型 判是否是指定類的對象
- if ([obj isMemberOfClass:[Dog class]]) {
- }
2.不可變數組
- -------尋找
-
- NSArray * array = [[NSArray alloc]initWithObjects:@"one",@"two",@"three",@"one", nil];
- NSUInteger index = [array indexOfObject:@"one123"];//返回第一個找到的數群組成員對應的下標 找不到返回NSNotFound
- index = [array indexOfObject:@"one" inRange:NSMakeRange(1, 3)];//在指定範圍內尋找
- if (index != NSNotFound) {
- NSLog(@"%ld",index);
- }
- ----抽取 組成新的數組
- NSArray * array1 = [array objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]];
- 《數字集合》
- NSIndexSet這是個數字集合類
- [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]產生一個數字集合
3.可變數
- NSMutableArray * array = [[NSMutableArray alloc]initWithObjects:@"one",@"two",@"three",@"four", nil];
- [array addObject:@"five"];//在數組尾部插入元素
- [array insertObject:@"six" atIndex:5];//在數組指定下標位置插入元素(不能越界,最大值為length)
- [array removeObject:@"six"];//刪除指定元素(數組中出現的所有位置都將被刪除)
- [array removeObject:@"two" inRange:NSMakeRange(0, 3)];//從指定下標位置開始的指定長度內刪除指定元素
- [array removeLastObject];//刪除最後一個元素
- [array removeAllObjects];//刪除所有元素
- [array replaceObjectAtIndex:3 withObject:@"ios"];//將指定下標位置元素替換為指定的元素
- [array exchangeObjectAtIndex:0 withObjectAtIndex:3];//將指定下標的兩個元素進行交換
4.字串分割與拼接
- //@"" 空的字串對象
- -------分割
- NSString * ptr = @"I am a man";
- NSArray * array = [ptr componentsSeparatedByString:@" "];//將字串整體作為分割條件 傳回值為NSArray不可變數組
- NSMutableArray * array1 = [NSMutableArray arrayWithArray:array];//若修改,則將NSArray轉化為NSMutableArray
- NSArray * array2 = [ptr componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@", "]];//以字串中的字元作為分割條件進行分割
- 《字元集合》
- NSCharacterSet 這是個字元集合類
- [NSCharacterSet characterSetWithCharactersInString:@", "]//把字串轉化為字元集合
- -------拼接
- NSString * str = [array componentsJoinedByString:@" "];
- 若分割條件出現在開頭或者結尾,則會出現空串@"",如果不需要,則需要轉化成NSMutableString對空串進行處理
- func1: [array1 removeObject:@""]; //找到空串直接刪除
- func2: for(id obj in array1){
- if([obj length] == 0) //空串的長度為0
- if([obj isEqualToString:@""]) //與空串進行比較(字串是不能進行==比較的,要使用函數)
- }