Соглашения о присвоении имен для BOOL Obj-C 2 свойства?

1. Добавить другой контроллер представления в «didFinishLaunchingWithOptions»

 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

UINavigationController *homeNav = [storyboard instantiateViewControllerWithIdentifier:@"NavigationControllerView"];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"SplashViewController"];

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = homeNav;
[self.window makeKeyAndVisible];

[(UINavigationController *)self.window.rootViewController pushViewController:viewController animated:NO];
}

2.В просмотре была загружена функция SplashView Controller

  [self performSelector:@selector(removeSplashScreenAddViewController) withObject:nil afterDelay:2.0];

3.В методе removeSplashScreenAddViewController вы можете добавьте свой главный контроллер вида, например .-

- (void) removeSplashScreenAddViewController {`  UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *homeNav = [storyboard instantiateViewControllerWithIdentifier:@"HomeNav"];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:viewControllerName];

UIWindow *window =  [StaticHelper mainWindow];
window.rootViewController = homeNav;
[window makeKeyAndVisible];

[(UINavigationController *)window.rootViewController pushViewController:viewController animated:NO];`}
22
задан 30 April 2009 в 13:29
поделиться

5 ответов

процитировано из АЦП

Если атрибут выражен как прилагательное, формат:

- (void)setAdjective:(BOOL)flag;
- (BOOL)isAdjective;

Например:

- (void)setEditable:(BOOL)flag;
- (BOOL)isEditable; 

Если атрибут выражен в виде глагола, формат будет следующим:

- (void)setVerbObject:(BOOL)flag; 
- (BOOL)verbObject;

Например:

- (void)setShowsAlpha:(BOOL)flag;
- (BOOL)showsAlpha; 

Глагол должен быть в простом настоящем времени.

| K <

29
ответ дан Chris Hanson 29 November 2019 в 04:51
поделиться

Вы хотели бы использовать тот, который работает с KVO, KVC и привязками и т. Д.

Я помню, как читал это в Документах, которые KVO et al. будет искать , это <ключ> , набор <ключ> , а также get <ключ> и многие другие, например countOf < key>

Контрольный список соответствия KVC объясняет это гораздо лучше, чем я когда-либо мог сделать.

4
ответ дан 29 November 2019 в 04:51
поделиться

Я не думаю, что это действительно имеет значение, поскольку KVO рассмотрит как , так и .

Looking на классах iPhone наиболее распространенный шаблон, который я видел, это:

@property (nonatomic, getter = isHidden) BOOL hidden;

Это позволяет вам получить доступ к свойству следующими способами:

obj.hidden = YES; // (1)
BOOL hidden = obj.hidden; // (2)
BOOL hidden = [obj isHidden]; // (3)

Но не:

BOOL hidden = obj.isHidden; // (4)

CalStore не следует этому соглашению. Вам придется использовать строку 4 вместо строки 2.

5
ответ дан 29 November 2019 в 04:51
поделиться

Соглашение определенно должно выполняться это ... для добытчиков BOOL. Причина, по которой вы видите подобный набор свойств в CalStore, наиболее вероятна, потому что он доступен только для чтения и записан таким образом для базовой читабельности файла заголовка, поскольку:

@property(readonly) isEditable;

обычно легче читать, чем:

@property(readonly, getter=isEditable) editable;

Для первого типа свойства, в вашей реализации вы можете сделать одно из:

@synthesize isEditable = editable;

или просто определить метод доступа:

- (BOOL)isEditable(void) { return editable; }

Это оставляет интерфейсный файл (заголовок) более легким для чтения потенциальным пользователем.

-2
ответ дан 29 November 2019 в 04:51
поделиться

Пример CalStore, кажется, нарушает соглашение. Я бы придерживался того, чтобы в имени свойства, в отличие от имени метода, не было "is".

3
ответ дан 29 November 2019 в 04:51
поделиться