Константы в Objective-C и ошибка дубликата символа "duplicate symbol"

Я объявил константу с тем же именем в некоторых разных классах в своем .m файле, таким образом:

@implementation MyViewController
const NSInteger numberOfItems = 6;
...
@end

Но при попытке создания проекта я получаю ошибку "дубликат символа". Я нашел несколько сообщений, посвященных этой проблеме относительно внешних или глобальных констант, но я хотел бы просто объявить некоторые константы частным для своего класса, как я могу это сделать?

благодаря

Ответ 1

Если вы хотите использовать константу только в одном файле .m тогда объявите ее как static. Например: static NSString * const CONSTANT_STRING = @"Constant я am".

В случае NSInteger вы можете писать в каждом файле .m:

static const NSInteger my_const = 3;

Если вы хотите, чтобы глобальные (одна константа с одним значением, видимым в каждом файле), записывали в ваш .h:

extern const NSInteger my_global_const;

и в вашем .m файле вы можете добавить

const NSInteger my_global_const = 5;