2011-08-04 27 views

Trả lời

29

Một NSNumber LÀ một NSValue. [NSNumber numberWithBool:YES] đã được gói trong NSValue cho bạn

+0

nhờ biết tôi đã missunderstanding cái gì ở đây! – tiltem

+0

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

1

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.

1

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)] 
0

Sử dụng Objective-C đen:

@(YES) 
Các vấn đề liên quan