2016-03-15 3 views
0

Немного смущает расширение класса, данное учебником Objective-C от Apple. Говорят, класс может иметь свою частную собственность, какМогу ли я написать частную собственность, а также частную переменную в том же расширении класса?

@interface SomeClass() 

@property NSString* privateProperty 

@end 

в то время как я могу добавить так называемый пользовательский переменный экземпляр для расширения класса как

@interface SomeClass() 
{ 
    NSString* instanceVar 
} 
@end 

я добавлял их вместе в одном расширении класса по обучающей импликации например

@interface SomeClass() 

@property NSString* privateProperty 

{ 
    NSString* instanceVar 
} 

@end 

, что приводит к ошибке компиляции Xcode. Не понимаю ли я учебник?

+0

@ Daij-Djan Ваш комментарий не имеет смысла. Это именно тот вопрос, который должен быть на SO. И что, если проблема синтаксиса не относится к расширению класса. ОП задает четкий вопрос программирования о языке программирования Objective-C. – rmaddy

+0

Откладывая мета-обсуждение, вызывающее отсрочку, на практике декларация '@ property' может рассматриваться как замена, надмножество в виде фигурного скопированного выражения переменных экземпляра. Если вы пытаетесь изучить язык, а не его историю, используйте '@property ivar'. Подумайте об этом как однострочное объявление экземпляра var (называемое '_ivar'), геттер, который можно использовать как' instance.ivar', и установщик, который может использоваться как 'instance.ivar = <некоторое значение типа > ' – danh

ответ

0

наоборот. переменные принадлежат сразу после интерфейса.

@interface SomeClass() { 
    NSString* instanceVar 
} 

@property NSString* privateProperty 

@end 
Смежные вопросы