사용 :
BOOL isTrue = [[someDict objectForKey:@"isTrue"] boolValue];
유일한 방법은 NSDictionary
에 BOOL
를 저장할 수는 NSNumber
객체를 상자에 있습니다. BOOL
은 원시이며 사전은 객체 만 보유합니다.
[someDict setObject:[NSNumber numberWithBool:isTrue] forKey:@"isTrue"];
편집 : @property
로이 대표의 두 가지 방법이 있습니다
(주석에 응답) 유사
는, 사용, 사전에
BOOL
를 저장합니다. 하나는 ivar을
BOOL
으로 선언하고 다른 하나는
NSNumber
으로 선언하는 것입니다.
첫 번째 경우, ivar는 : BOOL isTrue;
이고 속성은 @property BOOL isTrue;
입니다. (분명히 명명 규칙을 무시합니다).
NSNumber
의 경우, ivar는 NSNumber * isTrue;
이고 속성은 @property (nonatomic, retain) NSNumber * isTrue;
입니다. 이 경로를 사용하는 경우 YES
또는 NO
을 전달할 수있는 두 번째 setter 메서드 (setIsTrueBool
또는 그 외)를 제공하고 나면 직접 복싱을 수행 할 수 있습니다. 그렇지 않으면 이것을 부르는 사람은 스스로 복싱을해야 할 것입니다.
나는 개인적으로 옵션 # 1로 갈 가능성이 가장 높지만 클래스의 목적이 무엇인지에 따라 달라집니다.
@property는 어떻게 보이나요? @property (비 원자, 할당) BOOL isTrue; –
@LB - 편집 답변. –