Есть ряд других вопросов о том, так что обсудит, как константы объявляются и ведут себя в Objective-C, вы должны смотреть на следующем:
Constants in Objective-C
Objective-C “const” question
Significance of const keyword positioning in variable declarations
Для сравнения и сравнения с C# я хотел бы указать, что const
в Obj-C по существу тот же, что и на языке C (Obj-C является supe rset of C фактически). В Obj-C константы объявляются в глобальной области действия и должны быть инициализированы значением, известным во время компиляции. Objective-C не поддерживает константы в качестве членов класса. В C# константы всегда являются членами класса (или структуры) и также должны быть инициализированы с использованием значения, известного во время компиляции. C# #define
не позволяет связать значение с определенным символом, а используется для выбора условных путей компиляции (с использованием #if
и), что совершенно иная.
Что касается использования #define
для объявления констант, я лично стараюсь избегать этого, когда это возможно. Значения, которые являются #defined
, просто подставляются в код во время компиляции и могут быть интерпретированы по-разному в разных контекстах. Также возможно ввести конфликты имен, которые могут привести к переопределению значения неожиданно. Мои предложения состоят в том, чтобы использовать const
, когда вы можете, и #define
только тогда, когда вам нужно.
Используйте const, когда можете, #define только тогда, когда вам нужно. – 2010-12-07 17:34:31