2010-10-30 9 views
35

Quy ước đặt tên cho hằng số trong Mục tiêu-C (hoặc cách được sử dụng rộng rãi nhất để đặt tên cho chúng) là gì?Làm thế nào để đặt tên một hằng số trong Objective-C?

Có tiêu chí khác cho các hằng số extern không?

Một số phong cách tôi đã thấy:

NSString* const kPreferenceFirstRun = @"FirstRun"; 

// Replace "XY" by a prefix representing your company, project or module 
NSString* const XYPreferenceFirstRun = @"FirstRun"; 

Trả lời

36

Sau một chút googling tôi đã tìm thấy official coding guidelines for Cocoa.

Tóm lại:

  • Bắt đầu với một hai hoặc ba chữ prefix trong ALL-CAPS
  • Nghỉ ngơi trong UpperCamelCase
  • tiêu chí Tương tự cho extern hằng

Tôi đồng ý với itaiferber rằng kiểu tiền tố k rõ ràng hơn d cũng hữu ích hơn nhiều cho tự động hoàn thành. Sẽ rất thú vị nếu biết phong cách này phổ biến hơn các hướng dẫn chính thức.

+1

Tôi nghĩ rằng lợi ích của tiền tố hai chữ cái và tiền tố k là gấp đôi: 1) tiền tố hai chữ cái cho phép bạn dễ dàng lọc các lựa chọn tự động hoàn thành của bạn chỉ với nhóm các hằng số bạn đang tìm kiếm 2) khi xem mã, bạn biết chính xác tên miền liên tục đến từ đâu. Hãy tưởng tượng nếu bạn đang làm việc trên một dự án sử dụng nhiều dự án anh chị em trong Xcode và tất cả chúng đều sử dụng k làm định danh duy nhất cho hằng số - bạn sẽ bị sắp xếp thông qua danh sách tất cả các hằng số từ tất cả các dự án anh chị em. Cách khác, nếu mỗi dự án sử dụng tiền tố tên miền hai chữ cái của riêng nó thì nó trở nên dễ dàng hơn nhiều. – memmons

+0

Điểm rất thú vị và câu trả lời rất thú vị. Và nó sẽ là tốt hơn để có các hằng số khai báo trên mỗi tập tin tiêu đề (MyClass.h), hoặc nó sẽ là tốt hơn để có một tập tin .h toàn cầu (Constants.h hoặc tương tự) độc quyền có chứa tuyên bố liên tục? Tôi đã thấy thực hành cuối cùng này trong nhiều dự án C/C++, vậy tại sao không ở objC – voghDev

+0

Cần lưu ý rằng rất nhiều thư viện của Apple đang sử dụng kPrefixConstantNamingConvention. Vì vậy, cho dù bạn đi cho một hay khác là chủ yếu là tùy theo sở thích cá nhân. Tôi thường sử dụng kPrefix, nhưng tôi cũng có xu hướng tránh các hằng số toàn cục, vì vậy việc đặt tên các hằng số trở nên ít quan trọng hơn. –

5

nó dường như với tôi, việc thực hành tốt nhất là đặt tên cho các hằng số trong chữ hoa. nhưng các nhà phát triển lõi cacao dường như không chia sẻ ý kiến ​​của tôi)) họ sử dụng CamelCase cho các hằng số

+39

Có lẽ các nhà phát triển lõi cacao không thích mã của họ BẮT ĐẦU TẠI THEM. – dreamlax

+3

Kỹ thuật viết hoa toàn bộ được sử dụng trong C vì nó làm cho các macro (không phải hằng số, macro) nổi bật. Bởi vì các macro là một cấu trúc nguy hiểm như vậy trong C, đây là một kỹ thuật rất hữu ích bởi vì nó sẽ làm cho mắt của bạn dễ bị các điểm rắc rối. Thật không may, quy ước này đã được sao chép sai lạc trong các ngôn ngữ có cơ chế định nghĩa không đổi hoàn toàn tốt được xây dựng trong chính ngôn ngữ đó. – Ferruccio

+0

k là siêu dễ dàng để nhận ra, và như @hgpc đã đề cập, hoạt động tốt cho tự động hoàn thành. Các macro tiền xử lý sử dụng tất cả các mũ, vì vậy có thể sẽ đẹp hơn nếu sử dụng chúng một mình. – jpswain