2010-10-30 17 views
35

Objective-C'de (veya bunları adlandırmak için en çok kullanılan şekilde) sabitlerin adlandırma kuralı nedir?Objective-C'de bir sabit nasıl adlandırılır?

extern sabitleri için farklı bir ölçüt var mı?

Bazı stilleri gördüğüm:

NSString* const kPreferenceFirstRun = @"FirstRun"; 

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

cevap

36

sabitleri için CamelCase'i kullanıyorlar. Birazcık sonra, official coding guidelines for Cocoa'u buldum.

Özetle:

  • Başlat iki veya üç harfli prefix ile TÜM-HARFLERDEN
  • istirahat UpperCamelCase içinde extern için
  • aynı kriterler

Kabul ediyorum sabitleri itaiferber ile k önek stili daha nettir ve bir d ayrıca otomatik tamamlama için çok daha kullanışlı. Bu tarzın resmi kurallardan daha popüler olup olmadığını bilmek ilginç olurdu.

+1

İki harfli önek ile k ön ekinin yararı iki katlıdır: 1) iki harfli önek kolayca filtrelemenizi sağlar otomatik tamamlama seçimleriniz sadece aradığınız sabitler grubuna 2) kod bakarken, sabitin hangi alandan geldiğini tam olarak bilirsiniz. Xcode'ta birden fazla kardeş projesi kullanan bir projede çalışıyorsanız ve bunların hepsi sabitler için tek tanımlayıcı olarak kullanıp kullanılmadığını düşünün - tüm kardeş projelerden gelen tüm sabitlerin bir listesini sıralayabilmeniz gerekir. Alternatif olarak, her bir proje kendi iki harfli alan önekini kullandıysa çok daha kolay hale gelir. – memmons

+0

Çok ilginç bir nokta ve çok ilginç bir cevap. Ve her bir başlık dosyasında (MyClass.h) bildirilen sabitlerin olması daha mı iyi olurdu yoksa sadece sürekli beyan içeren global bir .h dosyası (Constants.h veya benzeri) olması daha mı iyi olurdu? Bu son uygulamayı pek çok C/C++ projesinde görmüştüm, bu yüzden neden olmasın? – voghDev

+0

Neden bir çok Apple kütüphanesinin kPrefixConstantNamingConvention kullandığını belirlemeye değer. Öyleyse, bir başkasına ya da diğerine giderseniz, çoğunlukla kişisel tercihiniz olur. Normalde kPrefix'i kullanırım, ama aynı zamanda global sabitlerden kaçınmaya da eğilimliyim, bu yüzden bu sabitlerin adlarını değiştirmek daha az önemli hale gelir. –

5

öyle iyi uygulama üst durumda sabitleri isim olduğunu, bana öyle geliyor. fakat kakao çekirdekli geliştiriciler benim fikrimi paylaşmıyor gibi görünmüyor)))

+39

Belki de Kakao çekirdek geliştiricileri kodlarını beğenmiyorlar. – dreamlax

+3

Tümüyle büyük harf tekniği C olarak kullanıldı çünkü makrolar (sabitler, makrolar değil) göze çarpıyordu. Makrolar C de bu kadar tehlikeli bir yapı olduğundan, bu çok kullanışlı bir teknikti çünkü gözünüze büyük ihtimalle sorunlu bölgeler çiziyordu. Ne yazık ki, bu sözleşme yanlış bir şekilde, dilin kendisinin içine inşa edilmiş, mükemmel derecede iyi bir sabit tanımlama mekanizmasına sahip olan dillerde kopyalanmıştır. – Ferruccio

+0

k tanıması çok kolay ve @hgpc olarak belirtildiği gibi, otomatik tamamlama için iyi çalışıyor. Önişlemci makroları tüm büyük harfleri kullanır, bu yüzden bunları tek başına kullanmak daha iyidir. – jpswain

İlgili konular