2012-02-06 34 views

Trả lời

6

Các TRUE vĩ mô chỉ được cung cấp như khả năng tương thích ngược với mã C (Objective-C được thiết kế để trở thành một siêu tập hợp C nghiêm ngặt). Cả hai đều có cùng ý nghĩa.

0

trong mục tiêu-c YESTRUE là giống nhau.

Ngoài ra, chúng có thể được biểu thị bằng 1 và 0 vì chúng thường được lưu trữ theo cách này trong dữ liệu lõi.

[NSNumber numberWithBool:YES];

+0

Tôi khuyên bạn nên chọn một và gắn bó với nó, tốt hơn là 'YES' vì nó làm cho nó rõ ràng hơn bạn đang viết mã Objective-C và không phải mã C thuần túy, nhưng nó thực sự là một vấn đề của quy ước. –

+0

Tôi tin rằng họ sử dụng 'YES' trong Objective-C vì cách họ cụm từ biến' BOOL' của họ thành các câu hỏi tương ứng với quy ước đặt tên phương thức. giống như 'BOOL isTrue = YES;' – MobileOverlord

+0

Chúng được lưu trữ như thế trong CD vì Core Data lưu trữ các đối tượng, BOOL không phải, vì vậy nó sử dụng NSNumber để lưu trữ BOOL và phương thức lớp 'numberWithBool' và cá thể đã tính toán' boolValue' thành cửa hàng có được giá trị vô hướng. – Abizern

1

Giá trị thành công ban đầu cho BOOL trong Mục tiêu C là YES. TRUE chỉ là bắt chước của nó để tương thích. Bạn có thể sử dụng cả hai nhưng tôi khuyên bạn nên sử dụng những gì ban đầu được thiết kế cho ngôn ngữ. Điều này rất quan trọng trong trường hợp cập nhật ngôn ngữ trong tương lai thay đổi bất kỳ thứ gì theo cú pháp của ngôn ngữ (không có khả năng xảy ra trong trường hợp này), sử dụng cú pháp ban đầu sẽ không khiến bạn sửa bất kỳ thứ gì trong mã cũ của mình.

Các vấn đề liên quan