목표 C 부울 배열
나는 객관-c에서 불리언 배열을 활용해야 합니다.대부분 설정되어 있지만 컴파일러는 다음 명령문에 경고를 보냅니다.
[updated_users replaceObjectAtIndex:index withObject:YES];
저는 이것이 YES가 단순히 물체가 아니기 때문이라고 확신합니다. 그것은 원시적인 것이기 때문입니다.그럼에도 불구하고, 저는 이것을 해야 하며, 그것을 어떻게 달성할 것인지에 대한 조언을 해주시면 감사하겠습니다.
감사해요.
네, 바로 그렇습니다. NS* 컨테이너는 Objective-C 개체만 저장할 수 있고 원시 유형은 저장할 수 없습니다.
NS Number로 마무리하여 원하는 작업을 수행할 수 있어야 합니다.
[updated_users replaceObjectAtIndex:index withObject:[NSNumber numberWithBool:YES]]
또는 를 사용하여@(YES)
이것으로 끝입니다.BOOL
순식간에NSNumber
[updated_users replaceObjectAtIndex:index withObject:@(YES)]]
그런 다음 boolValue를 꺼낼 수 있습니다.
BOOL mine = [[updated_users objectAtIndex:index] boolValue];
배열에 유효한 개체가 포함되어 있고 C-style 배열이 아니라고 가정합니다.
#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-array를 사용합니다.
BOOL array[100];
array[31] = YES;
조지 말대로 C 배열을 사용해요
BOOL myArray[10];
for (int i = 0; i < 10; i++){
myArray[i] = NO;
}
if (myArray[2]){
//do things;
}
마르틴, "myArray"는 조지의 예에서 "array"를 사용하는 이름입니다.
XCode 4.4부터는 목표-C 리터럴을 사용할 수 있습니다.
[updated_users replaceObjectAtIndex:index withObject:@YES];
어디에@YES
의 값과 같습니다.[NSNumber numberWithBool:YES]
컬렉션이 크거나 objc 개체보다 빠르게 수집하려면CFBitVector
/CFMutableBitVector
유형이 CoreFoundation에 있습니다.NS와 함께 제공되지 않는 CF-Collections 유형 중 하나이지만 원하는 경우 Objc 클래스로 빠르게 포장할 수 있습니다.
언급URL : https://stackoverflow.com/questions/628343/objective-c-boolean-array
'programing' 카테고리의 다른 글
부트스트랩이 있는 고정 너비 버튼 (0) | 2023.08.28 |
---|---|
Powershell에서 Get-ChildItem -Exclude 매개 변수를 사용하여 디렉터리를 제외할 수 없습니다. (0) | 2023.08.28 |
MariaDB의 하위 테이블에 있는 외부 키 값이 상위 테이블에서 중복된 값을 표시함 (0) | 2023.08.28 |
느린 쿼리 로그 비우기 (0) | 2023.08.28 |
ASP.NET 그리드 보기 대목록 보기 (0) | 2023.08.28 |