OC NSArray - NSMutableArray GeekBand
3625 ワード
NSArray
NSArrayの特徴
1.NSArrayはclass、参照タイプ、コピー時に参照の意味を持つ.NSArrayの要素はオブジェクトでなければなりません
3.NSArrayの長さと要素ポインタは変更できませんが、ポインタが指すオブジェクトの内部は変更できます.
NSArray作成
NSArrayの一般的なメソッド操作:
NSArray遍歴
可変配列NSMutableArray
NSMutableArrayの特徴
1.NSMutabelArrayはNSArrayのサブクラスであるが、配列長と要素ポインタの変更をサポートする.NSMutableArrayが初期化されると、キャッシュ容量capacityが割り当てられ、長さがcapacityより大きいと2倍に増加します.
3.@[]を使用して可変配列を作成することはできません.本質はNSArrayです.
NSMutableArray操作
NSArrayの特徴
1.NSArrayはclass、参照タイプ、コピー時に参照の意味を持つ.NSArrayの要素はオブジェクトでなければなりません
// , NSNumber
NSNumber *numberObj= [NSNumber numberWithInteger:number];
NSNumber *numberObj = @300u; //
//c , NSValue
Point point;
NSValue *pointObj= [NSValue value:&point withObjCType:@encode(Point)];
// [NSNull null]
NSNull* nullValue=[NSNull null];
3.NSArrayの長さと要素ポインタは変更できませんが、ポインタが指すオブジェクトの内部は変更できます.
NSArray作成
NSArray *arr1 = [NSArray array]; //
NSArray *arr2 = [NSArray arrayWithObject:@"1",@"2",nil]; //nil
NSArray *arr3 = @[@"1",@"2",@"3",@"4"];
NSArray *arr4 = [[NSArray alloc] initWithObjects:@"three",[NSNull null],@"four", nil];
NSArray *arr5 = [NSArray arrayWithArray:arr3];
NSArrayの一般的なメソッド操作:
//
arr.count;
// ,
[arr objectAtIndex:0];
arr[0];
//
//indexOfObject , isEqual
//indexOfObject
[arr indexOfObject:@"1"];
[arr indexOfObjectIdenticalTo:p1];
//
[arr containsObject:@"1"];
// ( , )
NSArray* sortArray1 = [arr1 sortedArrayUsingSelector:@selector(compare:)];
NSArray *sortArray1 = [mArr4 sortedArrayUsingFunction:intSort context:NULL];
//
NSInteger intSort(id num1, id num2, void *context) {
int v1 = [num1 intValue];
int v2 = [num2 intValue];
if (v1 < v2) {
return NSOrderedAscending;
}else if(v1 > v2) {
return NSOrderedDescending;
}else {
return NSOrderedSame; }
NSArray遍歴
//
for ( BLNPoint* point in array5) {
point.x++;
point.y++;
}
//
NSEnumerator *enumerator = [array5 objectEnumerator];
BLNPoint* item;
while (item = [enumerator nextObject])
{
item.x++;
item.y++;
}
//for
for (int i=0; i
可変配列NSMutableArray
NSMutableArrayの特徴
1.NSMutabelArrayはNSArrayのサブクラスであるが、配列長と要素ポインタの変更をサポートする.NSMutableArrayが初期化されると、キャッシュ容量capacityが割り当てられ、長さがcapacityより大きいと2倍に増加します.
1. 2*capacity
2.
3.
3.@[]を使用して可変配列を作成することはできません.本質はNSArrayです.
NSMutableArray操作
//
NSMutableArray *muArr = [NSMutableArray arrayWithObjects:p1,p2, nil];
// @[]
//NSMutableArray *array = @[@"lnj", @"lmj", @"jjj"]; // NSArray
//
NSMutableArray *muArr = [NSMutableArray arrayWithCapacity:10];
//
[muArr addObject:@"objc"];
//
[muArr addObjectsFromArray:@[@"hhhhh",@"uuuuu"]];
//
[muArr insertObject:@"abcd" atIndex:0];
// Index
[muArr replaceObjectAtIndex:0 withObject:@"0000"];
//
[muArr replaceObjectsInRange:NSMakeRange(3,2) withObjectsFromArray:@[@"hh",@"uu"]];
//
[muArr exchangeObjectAtIndex:4 withObjectAtIndex:5];
//
[muArr removeObjectAtIndex:0];
//
[muArr removeObject:@"hh"];
//
[muArr removeAllObjects];
//
[muArr removeLastObject];
//
[array removeObject:@"zz" inRange:NSMakeRange(0,2)];
//
[array removeObjectsInArray:@[@"hh",@"uu"]];
//
[array removeObjectsInRange:NSMakeRange(0,2)];