İOS / OSX açık kaynaklı projeler için adlandırma kuralı


12

Her zaman değil, çoğu zaman, yazar adının ve soyadının ilk harfleriyle başlayan isimleri olan iOS veya Mac OS X açık kaynaklı projeleri bulacaksınız. Eğer bir proje Nick Leblanc tarafından yazılırsa, proje şu şekilde okunur NLMyProject.

Örnekler:

Bu nereden geliyor? Önce bir kişi bunu bu şekilde mi yazdı, sonra herkes takip etti mi?

Apple Kılavuzlarında bile hiçbir şey bulamadım . Bu deyim herhangi bir yere yazılıyor mu?


1
Güzel soru ve havalı açık kaynak örnekleri! ;-)
Leo Natan

Yanıtlar:


16

Hedef C, C gibi, ad alanlarına sahip değildir. Birisi zaten bir işlev tanımlamıştır, bu araçlar o fooya bir sınıf Bar, bu genel benzersiz olmalı ve sen tanımlamak mümkün değil. Bu, kodunuza sahip olduğunuzda ve daha sonra başka bir kütüphane eklediğinizde çok fazla baş ağrısına neden olabilir ve aniden işler garip yerlerde kırılır.

Orada olduğu bunun için Apple tarafından sunulan bir kılavuz Sözleşmeleri: Objective C ile Programlama iOS geliştirici kütüphane bölümü:

Bazı İsimler Uygulamanızda Benzersiz Olmalıdır

Her yeni tür, sembol veya tanımlayıcı oluşturduğunuzda, önce adın benzersiz olması gereken kapsamı göz önünde bulundurmalısınız. Bazen bu kapsam, bağlantılı çerçeveleri de dahil olmak üzere uygulamanın tamamı olabilir; bazen kapsam sadece bir ek sınıfla, hatta sadece bir kod bloğuyla sınırlıdır.

Sınıf Adları Tüm Bir Uygulamada Benzersiz Olmalıdır

Objective-C sınıfları yalnızca bir projede yazdığınız kod içinde değil, aynı zamanda dahil edebileceğiniz çerçeveler veya paketler arasında benzersiz bir şekilde adlandırılmalıdır. Örnek olarak, uygulamanıza dahil ettiğiniz bir çerçevenin kuralları takip edememesi ve aynı adlara sahip sınıflar yaratması olası olduğundan, ViewController veya TextParser gibi genel sınıf adlarını kullanmaktan kaçınmalısınız.

Sınıf adlarını benzersiz tutmak için kural tüm sınıflarda önek kullanmaktır. Cocoa ve Cocoa Touch sınıf adlarının genellikle NS veya UI ile başladığını fark etmişsinizdir. Bunun gibi iki harfli önekler, Apple tarafından çerçeve sınıflarında kullanılmak üzere ayrılmıştır. Kakao ve Kakao Dokunuşu hakkında daha fazla bilgi edindikçe, belirli çerçevelerle ilgili çeşitli diğer öneklerle karşılaşacaksınız:

...

Kendi sınıflarınız üç harfli önek kullanmalıdır. Bunlar, şirket adınızın ve uygulama adınızın bir kombinasyonu veya hatta uygulamanızdaki belirli bir bileşenle ilgili olabilir. Örneğin, şirketinize Whispering Oak adı verildiyse ve Zebra Sürpriz adında bir oyun geliştiriyorsanız, sınıf öneki olarak WZS veya WOZ'yi seçebilirsiniz.

Yani, bu konvansiyonu bir tür kırdığından bahsettiğiniz kütüphaneler, ancak Objective C içinde ad boşluğu olmaması sorunun merkezinde yer alıyorlar.

Daha fazla Okuma
NSHipster tarafından Ad Alanı Oluşturma
Objective-C ad alanı çarpışmasını çözmenin en iyi yolu nedir?
İOS objektif-c kodunda ad alanları nasıl kullanılır?


Objective-C gerçekten isim alanlarına
benziyor

1
@ChrisCirefice gerçekten güzel olurdu, ama fark edilmesi gereken şey, Objective C'nin C'nin üstünde ince bir tabaka olmasıdır. İsim alanlarını tanıtmaya çalışmak, bir şeyleri kırmadan göründüğünden daha zor olabilir. Kazma Objective-C'nin neden ad alanları yok? Clang Geliştiricileri buldum - Objective-C'ye ad alanları ekleme . Unutmayın, @çünkü C'de kullanılmaz ... başka şeyleri kırmayan başka bir operatör eklemeye çalışmak zordur.

1
@ChrisCirefice Ad alanları hiçbir şeyi çözmez. Önek çakışmaları sadece ad alanı çakışmaları haline gelir.
Miles Rout

@MichaelT Objective C bir süredir C'nin üstünde ince bir tabaka olmamıştır (Objective C 2.0). Şimdi Apple, ad alanları gibi daha modern özellikler içeren Swift'e odaklandı, ancak şu anda Objective C'nin diğer özelliklerinden yoksun
Leo Natan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.