1. 2가지 예시
// 방법 1
id value = dictionary[@"key"];
// 방법 2
id value = [dictionary objectForKey:@"key"];
2. 방법1, 방법2 공통점
둘 다 반환되는 값은 id 타입이므로, 값을 가져온 후 원하는 타입으로 캐스팅 해야 합니다. objectForKey와 리터럴 구문 간의 성능 차이는 거의 없습니다.
3. 방법1, 방법2 차이점
방법1
// 방법 1
id value = dictionary[@"key"];
가독성이 좋다는 장점이 있지만 만약 key가 nil인 경우 컴파일 타임 에러가 발생합니다.
방법2
// 방법 2
id value = [dictionary objectForKey:@"key"];
key가 유효한지 확인해야 할 경우 objectForKey를 사용하는 것이 좋습니다.
4. 결론
방법2 사용을 추천합니다.
// 방법 2
id value = [dictionary objectForKey:@"key"];