어흥
[Objective-c] Collection 본문
728x90
반응형
1. 배열(NSArray, NSMutableArray)
- NSArray: 불가변형 배열로 수정 불가
- NSMutableArray: 가변형 배열로 수정 가능
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//배열 선언
NSArray *array1 = [[NSArray alloc] initWithObjects:@"A",@"B",@"C", nil];
NSArray *array2 = @[@"1",@"2",@"3"];
//배열 출력
NSLog(@"Array1 : %@", array1);
NSLog(@"Array2 : %@",array2);
//배열의 특정 원소 출력 방법
NSLog(@"3rd item : %@",[array1 objectAtIndex:2]);
NSLog(@"2nd item : %@",array2[1]);
//배열 전체 출력 - For문
for(int i=0;i<[array1 count];i++){
NSLog(@"index : %d - Item : %@", i, [array1 objectAtIndex:i]);
}
//배열 전체 출력 - Enumeration
for(id item in array2){
NSLog(@"Array2 : %@",item);
}
//가변형 배열 선언 및 원소 추가
NSMutableArray *array3 = [NSMutableArray array];
[array3 addObject:@"a"];
[array3 addObject:@"b"];
//출력
NSLog(@"Mutable Array : %@",array3);
//원소 삭제 이후 출력
[array3 removeObjectAtIndex:0];
NSLog(@"Mutable Array : %@",array3);
}
return 0;
}
2. Dictionary(NSDictionary, NSMutableDictionary)
- C++의 Map과 같은 Collection으로 중복을 제거하고 Key<-> Value의 형태로 저장되어 있다
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//불변형 딕셔너리 생성
NSDictionary *dic1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"Value",@"Key1",@"Value2",@"Key2",nil];
NSDictionary *dic2 = @{@"Key1":@"Value1",@"Key2":@"Value2"};
//출력
NSLog(@"Key1 : %@",[dic1 objectForKey:@"Key1"]);
NSLog(@"Key2 : %@",dic2[@"Key2"]);
NSLog(@"Key3 : %@",dic2[@"Key3"]); //존재하지 않는 데이터의 경우 null출력
//가변형 딕셔너리 생성
NSMutableDictionary *dic3 = [NSMutableDictionary dictionary];
//데이터 추가
[dic3 setObject:@"Value1" forKey:@"Key1"];
[dic3 setObject:@"Value2" forKey:@"Key2"];
//전체 출력
NSLog(@"dic3 : %@", dic3);
//특정 원소 변경이후 전체 출력
dic3[@"Key2"] = @"New Value2";
NSLog(@"dic3 : %@", dic3);
}
return 0;
}
3. 복합구조
- 여러 형태를 배열에 추가할 수 있다
- 숫자를 입력할 경우, NSNumber를 이용하여 추가한다
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSMutableArray *array = [NSMutableArray array];
[array addObject:@{@"Key" : @"Value"}]; //Dictionary 형태
[array addObject:@[@"Item1",@"Item2"]]; //배열 형테
[array addObject:[NSNumber numberWithInt:7]]; //Int
[array addObject:@3.14]; //문자열 형태(출력해보면 ""로 감싸져있다)
NSLog(@"array : %@",array);
NSArray *array2 = array[1]; //배열 복사
NSNumber *num = array[2]; //숫자 복사
NSLog(@"array 2: %@",array2); //{Item1, Item2}
NSLog(@"num: %@",num); //7
}
return 0;
}
728x90
반응형
'iOS' 카테고리의 다른 글
[Objective - C] 기본 예제(종합) (0) | 2020.10.19 |
---|---|
[Objective - C] 아카이빙 (0) | 2020.10.16 |
[Objective-C] 문자열, 파일, 프로토콜 (2) | 2020.10.15 |
[Objective-C] 기본 내용 2 (0) | 2020.10.14 |
[Objective - C] 기본 개념 (0) | 2020.09.24 |
Comments