2011-08-23 35 views
7

Tôi có một giá trị int quy định tại một trong những phương pháp của tôi:iOS: Làm thế nào để kiểm tra nếu một int "" Giá trị Equals để "nil"

giá trị int = [tự someMethodThatGetsAnINT];

Sau đó, tôi có một số "ifs" kiểm tra giá trị này.

Làm cách nào để thể hiện: if (value == nil)?

Khi tôi cố gắng làm viết code trực quan này tôi nhận được một cảnh báo nói:

Issue Semantic: So sánh giữa con trỏ và số nguyên ('int' và 'void *')

Trả lời

14

nil chỉ là một là 0 :) Hãy thử điều này:

if (0 == value) 

Tuy nhiên, tại sao bạn sẽ được thử nghiệm nil chống lại một int - một cái gì đó có vẻ buồn cười ở đây :)

0

bạn có thể sử dụng if (value == (int)nil) nhưng thực sự một hàm trả về một int không được trả về nil vì nil không phải là số nguyên (mặc dù nó có thể được biểu diễn tương tự).

this có thể giúp rõ ràng nó lên một chút

4

Nếu bạn thực sự muốn có một giá trị nil trở lại, bạn có lẽ nên được sử dụng NSNumber như kiểu trả về của bạn thay vì int. NSNumber là một lớp kết thúc các giá trị vô hướng trong mục tiêu-c. Bạn có thể đặt một số nguyên trong đó khi bạn có một giá trị trả về hợp lệ, hoặc trả về nil khi bạn không.

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