나는 a를 사용하고 NSMutableArray
있었고 사전을 사용하는 것이 내가 달성하려는 것에 대해 훨씬 더 간단하다는 것을 깨달았습니다.
키를 a로 저장하고 NSString
값을으로 int
사전 에 저장하고 싶습니다 . 어떻게하나요? 둘째, 가변 사전과 일반 사전의 차이점은 무엇입니까?
답변:
변경 가능한 사전은 변경 추가 및 제거 개체 수, 즉 수 있습니다. 불변는 이 생성되면 고정된다.
생성 및 추가 :
NSMutableDictionary *dict = [[NSMutableDictionary alloc]initWithCapacity:10];
[dict setObject:[NSNumber numberWithInt:42] forKey:@"A cool number"];
검색 :
int myNumber = [[dict objectForKey:@"A cool number"] intValue];
설정하면 개체의 setValue:(id)value forKey:(id)key
방법을 사용 NSMutableDictionary
합니다.
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:[NSNumber numberWithInt:5] forKey:@"age"];
또는 최신 Objective-C에서 :
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
dict[@"age"] = @5;
mutable과 "normal"의 차이점은 가변성입니다. 즉 , "normal" 과 함께 할 수없는 동안 NSMutableDictionary
(및 NSMutableArray
) 의 내용을 변경할 수 있습니다.NSDictionary
NSArray
[{image: "/path/to/img/1.jpg", data: "foo bar 1"}, {image: "/path/to/img/2.jpg", data: "foo bar 2"}, ..., {image: "/path/to/img/N.jpg", data: "foo bar N"}]
배열이 선언 될 때마다 다음과 같이 NSDictionary에 키-값을 추가해야합니다.
NSDictionary *normalDict = [[NSDictionary alloc]initWithObjectsAndKeys:@"Value1",@"Key1",@"Value2",@"Key2",@"Value3",@"Key3",nil];
이 NSDictionary에서 키 값을 추가하거나 제거 할 수 없습니다.
NSMutableDictionary에서와 마찬가지로이 방법을 사용하여 배열을 초기화 한 후 객체를 추가 할 수 있습니다.
NSMutableDictionary *mutableDict = [[NSMutableDictionary alloc]init];'
[mutableDict setObject:@"Value1" forKey:@"Key1"];
[mutableDict setObject:@"Value2" forKey:@"Key2"];
[mutableDict setObject:@"Value3" forKey:@"Key3"];
키 값을 제거하려면 다음 코드를 사용해야합니다.
[mutableDict removeObject:@"Value1" forKey:@"Key1"];
목표 -C
창조하다:
NSDictionary *dictionary = @{@"myKey1": @7, @"myKey2": @5};
변화:
NSMutableDictionary *mutableDictionary = [dictionary mutableCopy]; //Make the dictionary mutable to change/add
mutableDictionary[@"myKey3"] = @3;
약식 구문은 Objective-C Literals
.
빠른
창조하다:
var dictionary = ["myKey1": 7, "myKey2": 5]
변화:
dictionary["myKey3"] = 3
당신이 물어보고 싶은 것은 "변형 가능한 배열과 비 변형 가능한 배열 또는 사전의 차이점은 무엇입니까?"입니다. 이미 알고있는 것을 설명하기 위해 여러 용어가 사용됩니다. 이 경우 "mutable"이라는 용어를 "dynamic"으로 바꿀 수 있습니다. 따라서 변경 가능한 사전 또는 배열은 "동적"이며 런타임에 변경 될 수있는 반면, 변경 불가능한 사전 또는 배열은 "정적"이고 코드에서 정의되고 런타임에 변경되지 않는 사전 또는 배열입니다. , 요소를 추가, 삭제 또는 정렬하지 않습니다.)
수행 방법에 관해서는 여기에서 문서를 반복하도록 요청하고 있습니다. 여러분이해야 할 일은 샘플 코드와 Xcode 문서를 검색하여 정확히 어떻게 수행되는지 확인하는 것입니다. 하지만 제가 처음 배웠을 때 변덕스러운 일도 저를 던졌습니다. 그래서 그것을 줄 것입니다!