Bây giờ chúng ta có các chữ số NSNumber với sự hỗ trợ trình biên dịch trong Objective-C, có cách nào ưu tiên để so sánh NSNumber với một giá trị nguyên được biết không?Giá trị nguyên thủy của NSNumber so với isEqualToNumber với Obj-C Literals
Cách cũ là [myNumber integerValue] == 5
Bây giờ chúng ta có thể làm [myNumber isEqualToNumber:@5]
hoặc thậm chí [myNumber isEqualToNumber:@(someVariable)]
.
Có lợi thế nào cho phương pháp isEqualToNumber:
hay chúng tôi nên gắn với integerValue trừ khi giá trị để so sánh với đã là một NSNumber?
Một lợi thế mà tôi có thể thấy là nếu một số thay đổi Biến đổi từ NSInteger thành CGFloat, không cần thay đổi mã nào cho cách mới.
sẽ autoboxing/unboxing có bao giờ đến Mục tiêu C không? –
@AmoghTalpallikar Không, nhưng điều gần nhất tiếp theo là ở đây: '[myNumber isEqualToNumber: @ 5]' – dasblinkenlight
sẽ == kiểm tra công việc cho NSNumbers nếu chúng đại diện cho cùng một số hoặc bool? myNumber == @ 5 hoặc status == @YES –