Объявление файла заголовка в iPhone

#iphone

#iPhone

Вопрос:

В чем разница между ними:-

Подход 1:-

 @interface EffortView : UIView {

}    
@property (nonatomic, retain) UIView *homeView;    
@end
  

Подход 2:-

 @interface EffortView : UIView {
    UIView *homeView;
}    
@property (nonatomic, retain) UIView *homeView;    
@end
  

Я синтезировал свойства в обоих случаях. Оба они работают. Я использую Xcode 4.0 на Mac 10.6.6

Пожалуйста, просветите меня.

Спасибо вам всем.

Комментарии:

1. отличный вариант @socialCircus..

Ответ №1:

Первый подход не будет работать в 32-разрядных средах выполнения Mac OS X, потому что каждое свойство должно иметь соответствующую переменную экземпляра. 64-разрядные версии и среды выполнения iOS автоматически создают переменную экземпляра для вас, поэтому в этом случае достаточно использовать второй подход.

Итог таков: если вы на 100% уверены, что никогда не будете ориентироваться на 32-разрядные системы Mac OS X и ни один из компонентов вашего программного обеспечения никогда не будет использоваться на этой платформе, вы можете безопасно опустить переменные экземпляра.

Комментарии:

1. вы имеете в виду, что Xcode 4.0 на Mac 10.6.6 использует 64-разрядную среду выполнения? Какие версии Xcode и Mac имеют 32-разрядные среды выполнения?

2. Нет; он использует 32-разрядную, 64-разрядную или среду выполнения iOS в зависимости от того, для чего вы компилируете свой проект. Поскольку вы компилируете свой проект для iPhone, вы используете среду выполнения iOS, следовательно, приведенный выше код будет работать. Если вы компилировали свой проект для 64-разрядных процессоров Intel, вы использовали 64-разрядную среду выполнения Mac OS X, следовательно, приведенный выше код также работал бы. Однако, если бы вы компилировали для 32-разрядного процессора Intel и / или предназначались для Mac OS X 10.4 и более старых систем, вы бы использовали 32-разрядную среду выполнения Mac OS X, и приведенный выше код не работал бы.