NSArray
1. 배열 생 성:
NSArray *array = [NSArray array]; // array 。
array = [NSArray arrayWithObject:@"123"]; //arrayWithObject: 1 。
array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];
//arrayWithObjects: 。
int count = [array count];
// : count = array.count; count 。
2. 배열 의 간단 한 사용:
NSObject *obj = [[NSObject alloc] init];
NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c" , obj, nil];
// OC OC , :obj。
if ([array containsObject:@"a"]) {
//containsObject: array @"a", BOOL 。
NSLog(@" a");
}
NSString *last = [array lastObject];
//lastObject array 。
NSString *str = [array objectAtIndex:1];
//objectAtIndex: 。
int index = [array indexOfObject:@"c"];
//indexOfObject: @"c" ( )。
-(NSUInteger)indexOfObject(id)anObject inRange:(NSRange)range
// range 。
-(BOOL)isEqualToArray(NSArray *)otherArray
// 。
-(id)firstObjectCommonWithArray(NSArray *)otherArray
// 。
3. 배열 의 메모리 관리:
Student *stu1 = [[Student alloc] init];
Student *stu2 = [[Student alloc] init];
Student *stu3 = [[Student alloc] init];
NSLog(@"stu1:%zi", [stu1 retainCount]);
//retainCount stu1 。
NSArray *array = [[NSArray alloc] initWithObjects:stu1, stu2, stu3, nil]; //initWithObjects: stu1, stu2, stu3 , , 1, retain 。
[stu1 release];
[stu2 release];
[stu3 release];
[array release]; // , release 。
4. 배열 의 요소 에 메 시 지 를 보 냅 니 다:
Student *stu1 = [[Student alloc] init];
Student *stu2 = [[Student alloc] init];
Student *stu3 = [[Student alloc] init];
NSArray *array = [NSArray arrayWithObjects:stu1, stu2, stu3, nil];
//arrayWithObjects: stu1, stu2, stu3 。
[array makeObjectsPerformSelector:@selector(test)];
//makeObjectsPerformSelector:@selector() array test 。
[array makeObjectsPerformSelector:@selector(test2:) withObject:@"123"];
//makeObjectsPerformSelector:@selector()withObject: array test2: @"123"; ; :test2: 。
5. 배열 옮 겨 다 니 기:
NSArray *array = [NSArray arrayWithObjects: @"1", @"2", @"3", nil];
int count = array.count;// ,count 。
for (int i = 0; i<count; i++)
{
// id void *
id obj = [array objectAtIndex:i];
NSLog(@"%i-%@", i, obj);
}
// :for-in
NSArray *array = [NSArray arrayWithObjects: @"1", @"2", @"3", nil];
int i =0;
for (id obj in array)
{ // , array obj。
NSLog(@"%i-%@", i, obj);//i array 。
i++;
}
// Block ( ):
NSArray *array = [NSArray arrayWithObjects: @"1", @"2", @"3", nil];
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
{
NSLog(@"%i-%@", idx, obj);
//enumerateObjectsUsingBlock: Block array, Block;obj、idx、*stop ,obj 、idx 、*stop , *stop = YES; 。
if (idx == 1)
{// 1,
*stop = YES; // BOOL
}
}];
// :
NSArray *array = [NSArray arrayWithObjects: @"1", @"2", @"3", nil];
NSEnumerator *enumerator = [array objectEnumerator]; //
NSEnumerator *enumerator = [array reverseObjectEnumerator]; // ( )
NSArray *array2 = [enumerator allObjects]; // allObjects 。
NSLog(@"array2:%@", array2);
id obj = nil;
while (obj = [enumerator nextObject])
{ //nextObject 。
NSLog(@"obj=%@", obj);
}
6. 새로운 배열 을 파생 합 니 다:
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", nil];
NSArray *array2 = [array arrayByAddingObject:@"3"];
//arrayByAddingObject: array ( ) array2。
NSArray *array3 = [array arrayByAddingObjectsFromArray:[NSArray arrayWithObjects:@"4", @"5", nil]];
//arrayByAddingObjectsFromArray: array [NSArray arrayWithObjects:@"4", @"5", nil] array3。
NSArray *array4 = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];
NSRange range = NSMakeRange(1, 2);
NSArray *array5 = [array4 subarrayWithRange:range];
//subarrayWithRange: range array4 。
NSLog(@"array5:%@", array5);
// :array、array2、array3、array4、array5 , 。
7. 배열 의 다른 용법:
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil];
NSString *str = [array componentsJoinedByString:@"-"];
//componentsJoinedByString: - array @”1-2-3-4”。
NSString *path = @"/Users/apple/Desktop/array.xml";// 。
[array writeToFile:path atomically:YES];//writeToFile:(NSString *) atomically:(BOOL) array path ( xml ),atomically:YES 。
path = @"/Users/apple/Desktop/array.txt";
NSArray *array2 = [NSArray arrayWithContentsOfFile:path];
//arrayWithContentsOfFile: path ( XML ) 。
NSMutableArray
NSMutableArray *array = [NSMutableArray arrayWithObject:@"1"];//NSMutableArray 。
[array addObject:@"2"];//
[array addObject:@"3"];
[array removeObject:@"2"];//removeObject: array @"2"。
[array removeLastObject];//removeLastObject array 。
[array removeAllObjects];//removeAllObjects array 。
NSMutableArray *models = [NSMutableArray arrayWithCapacity:20];
// arrayWithCapacity 。
-(void)setArray:(NSArray *)otherArray // 。
-(void)addObjectsFromArray:(NSArray *)otherArray // otherArray 。
-(void)insertObject:(id)anObject atIndex:(NSUInteger)index // index 。
-(void)insertObjects:(NSArray *)objects atIndexes:(NSIndexSet *)indexes // indexes objects 。
-(void)removeObjectAtIndex:(NSUInteger)index // index 。
-(void)removeObjectsAtIndexes:(NSIndexSet *)indexes // indexes 。
-(void)removeObject:(id)anObject inRange:(NSRange)range // range 。
-(void)removeObjectsInArray:(NSArray *)otherArray // otherArray 。
-(void)removeObjectsInRange:(NSRange)range // range 。
-(void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject // anObject index 。
-(void)replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects // objects indexes 。
-(void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray range:(NSRange)otherRange
// otherArray otherRange range 。
-(void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray // otherArray range 。
-(void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2 // idx1 idx2 。
// NSArray 。
-(void)sortUsingDescriptors:(NSArray *)sortDescriptors;
-(void)sortUsingComparator:(NSComparator)cmptr;
-(void)sortUsingSelector:(SEL)comparator;
// :
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"1", @"3", @"2", nil];
[array sortUsingSelector:@selector(compare:)];
NSLog(@"%@", array);
주: OC 에서 배열 과 사전 은 OC 대상 만 저장 할 수 있 고 기본 데이터 형식 을 저장 할 수 없습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.