Nie zawsze, ale przez większość czasu, znajdziesz projekty open source dla iOS lub Mac OS X o nazwach rozpoczynających się od pierwszych liter imienia i nazwiska autora. Jeśli autorem projektu byłby Nick Leblanc, projekt zostałby odczytany jako NLMyProject
.
Przykłady:
- RMSwipeTableViewCell przez Rune Madsen,
- EBCardCollectionViewLayout autor: Ezequiel Becerra,
- SDiPhoneVersion autor: Sebastian Dobrincu,
- LNNotificationsUI autorstwa Leo Natana.
Skąd to pochodzi? Czy jedna osoba napisała to w ten sposób, a potem wszyscy poszli za nią?
Nie znalazłem nic na ten temat, nawet w Wytycznych Apple . Czy ten idiom jest napisany gdziekolwiek?
ios
objective-c
apple
conventions
namespace
Stéphane Bruckert
źródło
źródło
;-)
Odpowiedzi:
Cel C, podobnie jak C, nie ma przestrzeni nazw. Oznacza to, że jeśli ktoś już zdefiniował funkcję
foo
lub klasęBar
, musi ona być globalnie unikalna i nie można jej zdefiniować. Może to powodować wiele problemów, gdy masz kod, a następnie dodajesz kolejną bibliotekę i nagle rzeczy psują się w dziwnych miejscach.Jest to wytyczne przedstawione przez firmę Apple za to w Programowanie w Objective C: Konwencje dział programistów iOS:
Biblioteki, o których wspominasz, w pewnym sensie łamią tę konwencję, ale zajmują się problemem braku przestrzeni nazw w Celu C.
Dalsza lektura
Przestrzeń nazw NSHipster
Jaki jest najlepszy sposób rozwiązania kolizji przestrzeni nazw Objective-C?
Jak korzystać z przestrzeni nazw w kodzie C celu iOS?
źródło
@
jest używany, ponieważ nie jest używany w C ... próba dodania innego operatora, który nie psuje innych rzeczy, jest trudna.