У меня был соблазн закрыть этот вопрос, но я не думаю, что видел подобный вопрос, заданный ранее, и это правильный вопрос.Вот мои довольно неорганизованные мысли по этому вопросу.
Многие языки имеют функцию, называемую пространства имен , где «полностью определенное» имя класса начинается с префикса иерархической серии имен.Например, класс String
в Java - это, собственно, java.lang.String
, а пользовательский класс - правильно com.whatever.foobar.MyClass
.
К сожалению, пространства имен никогда не добавлялись в Objective-C, что означает, что ObjectiveСимволы -C (имена классов, имена протоколов и несколько других типов) не могут быть помещены в пространство имен даже при использовании Objective-C ++ (который имеет функцию пространства имен для функций, констант, структур и т. Д.)
Единственное решение, предотвращающее конфликты символов в общем коде, состоит в том, чтобы использовать некоторую форму искажения имен, чтобы сделать ваши имена символов уникальными.В Objective-C условием является использование префикса из двух символов (иногда это число может быть разным) для всех ваших классов.
Этот парень из дяди Боба негодяй говорит вам не делать этого, потому что пока выВ конечном итоге вы получите программу, которая не компилируется, и вы потеряете все преимущества пространств имен, которые до сих пор предлагают префиксы.Использует ли ваше приложение плагины?Вы должны префикс.Есть ли у вашего приложения публичный API?Вам нужно поставить префикс.
Теоретически, код в пределах одного приложения, которое никогда не касается внешнего мира, может обходиться без префиксов, но винт - продолжайте кодировать аккуратно и добавляйте префикс даже там.Это спасет вас от горя позже.