2013-09-01 55 views
5

Tôi là một nhà phát triển iOS tương đối giàu kinh nghiệm, tuy nhiên có một điều luôn làm phiền tôi, sự khác biệt giữa Nil (Capital) và nil (chữ thường) và NULL (nếu có) về hiệu suất và cách sử dụng? Tôi hoàn toàn chắc chắn rằng có một sự khác biệt giữa chúng nếu không thì tại sao chúng lại được định nghĩa riêng biệt ngay từ đầu ...Sự khác biệt giữa Nil và nil và Null trong Objective-C

+1

http://stackoverflow.com/a/1564846/1404239 –

+0

cảm ơn các bạn, nó giúp ích rất nhiều;) – virindh

Trả lời

15

Ý tưởng cơ bản là bạn dùng NULL cho con trỏ C (0 cho C nguyên thủy), không Trường hợp C mục tiêu, Nil cho các lớp Objective C và NSNull như một cách giả vờ rằng không có gì là cái gì đó để bạn có thể lưu trữ một cá thể không có gì trong một mảng hoặc từ điển.

Một mô tả tuyệt vời này và nguồn gốc của giá trị được liệt kê dưới đây có thể được tìm thấy tại địa chỉ:

NULL (void *) 0 giá trị null đen cho C con trỏ

nil (id) 0 giá trị null đen cho Objective-C đối tượng

Nil (class) 0 đen giá trị null cho các lớp học Objective-C

NSNull [NSNull null] singleton đối tượng dùng để biểu diễn null