Gặp sự cố khi gói giá trị BOOL trong NSValue.Cách bọc BOOL trong NSValue
Tôi cố gắng này:
[NSValue valueWithPointer:[NSNumber numberWithBool:YES]]
Gặp sự cố khi gói giá trị BOOL trong NSValue.Cách bọc BOOL trong NSValue
Tôi cố gắng này:
[NSValue valueWithPointer:[NSNumber numberWithBool:YES]]
Một NSNumber LÀ một NSValue. [NSNumber numberWithBool:YES]
đã được gói trong NSValue cho bạn
Dưới đây là một số mã mẫu để mở rộng câu trả lời của Joshua Weinberg.
➤ Để chuyển đổi một BOOL nguyên thủy đến một đối tượng giả Boolean:
NSNumber* isWinning = [NSNumber numberWithBool:YES];
➤ Để chuyển đổi một đối tượng giả Boolean để một BOOL nguyên thủy:
BOOL winner = [isWinning boolValue];
Xem NSNumber lớp tham khảo.
Thực ra NSNumber là hậu duệ nặng hơn của NSValue. Nếu bạn thực sự muốn sử dụng một NSValue dưới đây là cách bạn muốn làm điều đó:
BOOL bool_value = YES;
[NSValue valueWithBytes:&bool_value objCType:@encode(BOOL)]
Sử dụng Objective-C đen:
@(YES)
nhờ biết tôi đã missunderstanding cái gì ở đây! – tiltem
Nếu bạn thực sự muốn sử dụng NSValue, hãy kiểm tra câu trả lời của tôi bên dưới. NSValue là trọng lượng nhẹ hơn khi bạn không cần các tính năng bổ sung mà NSNumber cung cấp. – jasonjwwilliams