2009-09-08 5 views
0

적절한 방법 NSMutableDictionary 인스턴스 변수를 수정하려면?

Objective-C NSMutableDictionary getter/setter 메서드를 사용하여 클래스의 @interface 구역 내에서 선언 된 있습니다 :

@interface myClass : NSObject 
{ 
    NSMutableDictionary *dict; 
} 
- (void) setDict: (NSMutableDictionary *) newDict; 
- (NSMutableDictionary *) dict; 

일부 내 @implementation 메서드를 dict 수정할 싶어요. 표준 Obj-C 관용구를 고수하고 "적절하게"수정하고 싶습니다. getter를 사용하지만 setter는 사용하지 않는 것이 좋습니다.

[[self dict] removeObjectForKey:@"myKey"]; 

... 아니면 더 좋은 방법이 있습니까?

답변

3

문제가 해결 하겠지만, 왜하지 : 클래스의 구현 내부

[dict removeObjectForKey:@"myKey"]; 

, 당신은 인스턴스 변수에 직접 액세스 할 수 있고, 직접 사용하는 관용적 목표 - C이다.

+0

필자는 직접 변수가 아닌 Getter 메서드를 통해 항상 변수에 액세스해야한다는 인상하에있었습니다. 그러나 나는 언어에 대해 아주 익숙하다. 그래서 나는 이것에 대해 잘못 생각할지도 모른다. –

+0

클래스 자체 구현 내에서 접근 자 메서드를 사용하는 것은 일반적으로 필요하지 않습니다. 물론 외부 클래스는 접근 자 메서드를 사용해야합니다. – mipadi

+1

아, 훌륭해! 감사! 그렇다면 클래스의 자체 구현 내에서 접근 자 메서드를 사용해야 할 때가 언제인가? 변수가 읽힐 때마다 카운터를 증가시키는 등, 펑키 한 일을하는 커스텀 접근자를 직접 만들었을 때입니까? –

관련 문제