NSArray簡析

1.數組抽取

//數組抽取,由一個數組的一部分抽取出一個新的數組
NSArray * array=[[NSArray alloc]initWithObjects:@"one",@"two",@"three",@"four", nil];
NSArray * array1 = [array objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]];
//[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]
//創建一個數字集合對象,該集合成員是數字1,2,3。
//array1包含3個元素:{@"two",@"three",@"four"}
2.枚舉器

//創建一個正序枚舉器
NSEnumerator * enume1 = [array objectEnumerator]; //枚舉器是讀數據的
id obj;
while (obj = [enume1 nextObject]) {
   NSLog(@"%@",obj);
}
//快速枚舉(正序)
for(id obj in array) {
   NSLog(@"obj:%@",obj);
}
//創建一個逆序枚舉器(個人感覺這個還是比較好用的)
NSEnumerator * enume2 = [array reverseObjectEnumerator];
while (obj = [enume2 nextObject]) {
   NSLog(@"obj = %@",obj);
}

3.字符串分割到數組

NSString * str = @"Yes,I am a good man ";
//以字符串整體作爲分割條件
NSArray * array1 = [str componentsSeparatedByString:@" "];
//以@” ” 作爲分割條件
NSArray *array2 = [str componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@" ,"]];
//以字符作爲分割條件 //NSCharacterSet 字符集合
//[NSCharacterSet characterSetWithCharactersInString:@" ,"];
//把字符串@" ,"轉 化爲一個字符集合
//這個集合的成員就是字符' '和字符','
//返回值是NSArray不要寫成NSMuatbaleArray
//OC中的分割函數不像C中strtok()函數,上面的字符串最後的“空格”會分割成一個單獨的字符該字符是個空字符,這一點不如C中的分割函數好.
4.把數組元素拼接成字符串

NSArray * array=[[NSArray alloc]initWithObjects:@"one",@"two",@"three",@"four", nil];
NSString * str = [array componentsJoinedByString:@"#"];
//str = @"one#two#three#four"
5.可變數組的排序

創建一個Person類

@interface Person : NSObject

@property NSUInteger age;

-(BOOL)asc:(Person *)person;//升序
-(BOOL)dec:(Person *)person;//降序

@end
@implementation Person

-(BOOL)asc:(Person *)person
{
    return self.age > person.age;
}
-(BOOL)dec:(Person *)person
{
    return self.age < person.age;
}

@end
main函數測試

//可變數組排序
NSMutableArray * array = [[NSMutableArray alloc] init];
NSArray * array1 = [[NSArray alloc] init];
NSInteger i = 0;
while (i++ < 5) {
     Person * person = [[Person alloc] init];
     person.age = arc4random()%10 + 1;
     [array addObject:person];
}
[array sortUsingSelector:@selector(asc:)];
//array由無序變爲升序
array1 = [array sortedArrayUsingSelector:@selector(dec:)];
//array1由不存在變成一個含5個元素且降序排列的數組

//sortUsingSelector這是一個排序方法;已經實現了

//但是需要我們提供一個準則(就是一個函數)

//這個準則是(升序)左邊 大於右邊 進行交換 或者是(降序)左邊小於右邊進行交換

//數組的元素是哪個類,那麼這個準則就寫在哪個類中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章