Не всегда, но в большинстве случаев вы найдете проекты с открытым исходным кодом для iOS или Mac OS X, имена которых начинаются с начальных букв имени и фамилии автора. Если бы автором проекта был Ник Лебланк, проект читался бы как NLMyProject
.
Примеры:
- RMSwipeTableViewCell от Rune Madsen,
- EBCardCollectionViewLayout Ezequiel Becerra,
- SDiPhoneVersion от Себастьяна Добринку,
- LNNotificationsUI от Лео Натана.
Откуда это? Один человек написал так сначала, а потом все остальные?
Я ничего не мог найти об этом, даже в Руководстве Apple . Эта идиома написана где-нибудь?
ios
objective-c
apple
conventions
namespace
Стефан Брукерт
источник
источник
;-)
Ответы:
Цель C, как и C, не имеет пространств имен. Это означает, что если кто-то уже определил функцию
foo
или классBar
, он должен быть глобально уникальным, и вы не можете определить его. Это может привести к большому количеству головной боли, когда у вас есть код, а затем добавлена еще одна библиотека, и вдруг что-то ломается в странных местах.Там является ориентиром , представленный Apple , для этого в Программирование с Objective C: Конвенции раздел библиотеки для разработчиков IOS:
Таким образом, библиотеки, о которых вы упоминаете, нарушают это соглашение, но в центре проблемы отсутствия пространства имен в Objective C.
Дальнейшее чтение
пространства имен NSHipster
Каков наилучший способ решить коллизию пространства имен Objective-C?
Как можно использовать пространства имен в коде Objective-C iOS?
источник
@
используется потому, что он не используется в C ... Попытка добавить другой оператор, который не нарушает другие вещи, является сложной задачей.