문제

목표 c에서 부울 배열을 사용해야합니다. 주로 설정했지만 컴파일러는 다음과 같이 경고를합니다.

[updated_users replaceObjectAtIndex:index withObject:YES];

예는 단순히 대상이 아니기 때문에 이것은 확실합니다. 원시입니다. 어쨌든, 나는 이것을해야하며, 그것을 달성하는 방법에 대한 조언에 크게 감사 할 것입니다.

감사.

도움이 되었습니까?

해결책

그렇습니다. 그것이 바로 그게 바로 그 것입니다.

nsnumber로 싸서 원하는 것을 달성 할 수 있어야합니다.

[updated_users replaceObjectAtIndex:index withObject:[NSNumber numberWithBool:YES]]

또는 사용하여 @(YES) 포장 a BOOL 에서 NSNumber

[updated_users replaceObjectAtIndex:index withObject:@(YES)]]

그런 다음 boolvalue를 꺼낼 수 있습니다.

BOOL mine = [[updated_users objectAtIndex:index] boolValue];

다른 팁

배열이 유효한 개체가 포함되어 있다고 가정하면 (그리고 C 스타일 배열이 아님) :

#define kNSTrue         ((id) kCFBooleanTrue)
#define kNSFalse        ((id) kCFBooleanFalse)
#define NSBool(x)       ((x) ? kNSTrue : kNSFalse)

[updated_users replaceObjectAtIndex:index withObject:NSBool(YES)];

당신은 저장할 수 있습니다 NSNumbers:

[updated_users replaceObjectAtIndex:index
                         withObject:[NSNumber numberWithBool:YES]];

또는 귀하의 요구에 따라 C- 어레이를 사용하십시오.

BOOL array[100];
array[31] = YES;

Georg와 마찬가지로 C-Array를 사용하십시오.

BOOL myArray[10];

for (int i = 0; i < 10; i++){
  myArray[i] = NO;
}

if (myArray[2]){
   //do things;
}

Martijn, "MyArray"는 Georg의 예에서 "배열"을 사용하는 이름입니다.

Xcode 4.4에서 Objective-C 리터럴을 사용할 수 있습니다.

[updated_users replaceObjectAtIndex:index withObject:@YES];

어디에 @YES 동일합니다 [NSNumber numberWithBool:YES]

컬렉션이 크거나 OBJC 객체보다 빠르기를 원한다면 CFBitVector/CFMutableBitVector 코어 파운드에서 발견 된 유형. CF 수집 유형 중 하나입니다 ~ 아니다 NS 대응 물이있는 배송이지만 원하는 경우 OBJC 클래스에 빨리 감을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top