芝蘭之交

simp.egloos.com

포토로그



[Objective C] NSMutableDictionary

1. Value 가 nil 이면 insert가 안됨 : count 를 이용해 분기를 태울 경우 문제가 발생할 소지가 있음

NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setValue: nil forKey: @"Foo"];


해당 소스에서 dic 에 값이 세팅 되지 않음. 이런 좀 황당할때가. Value 가 nil 일 경우에 setting 하지 않는점

참고로
[dic setObject: nil forKey: @"Foo"];
에서는 Exception 이 발생함
         attempt to insert nil value (key: Foo)



2. setValue 와 setObject 의 차이는 key 에 string 을 쓰는지 아무거나 쓸 수 있는지 차이인듯

- setValue:forKey: 는 NSKeyValueCoding 프로토콜의 구현체인데 다른 클래스에서는 프로퍼티 세팅할때 이용할 수 있으나 딕셔너리에서는 안되는듯  
- KVP 에 대해서는 애플문서를 참조


덧글

댓글 입력 영역