где я определяю переменную (от 15 до 20 переменных). Appdelegate File или .PCH File или определяю их внешне - PullRequest
0 голосов
/ 05 марта 2012

У меня есть переменная от 15 до 20, я хочу получить доступ к ней во всем моем проекте. Какое место лучше всего определить и почему? .. Файл Appdelegate, файл .Pch или определение этих Extern.

действительно спасибо заранее.

Ответы [ 3 ]

1 голос
/ 05 марта 2012

Доступ к делегату вашего приложения из различных точек вашего приложения создает прочную связь между этими компонентами вашего приложения.

В основном вы используете глобальные переменные в своем приложении, что обычно является хорошим показателем для улучшаемого дизайна приложения.

Переменные обычно не живут в воздухе. Они существуют в контексте. Например, если вы используете имя пользователя и пароль, вы должны получить их из системной цепочки для ключей. Весь процесс аутентификации должен быть заключен в класс аутентификации, в котором вы определяете свойства.

Если вам нужен доступ к информации из разных мест вашего приложения, вы должны передать их, например, в качестве аргументов инициализатора. Это, кстати, делает ваши отдельные компоненты тестируемыми, и это хорошо.

Мой совет - сначала переосмыслить дизайн приложения, чтобы потом не оказаться в аду зависимости.

0 голосов
/ 05 марта 2012

Создайте один заголовочный файл с именем 'define.h' и внедрите в него все определения и константы.импортировать этот файл в файл .Pch

Это лучший файл, который будет отделен от других классов.

0 голосов
/ 05 марта 2012

Вы можете определить их как свойства в вашем классе AppDelegate. Например:

@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (retain, nonatomic) NSString *publicString;

Если вы хотите сделать их readonly для внешних объектов, вы можете определить следующее:

1) в AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (retain, readonly, nonatomic) NSString *publicString;

2) в AppDelegate.m

@interface AppDelegate ()
@property (retain, readwrite, nonatomic) NSString *publicString;
@end

@implementation AppDelegate
@synthesize publicString;
// other methods below
@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...