2014-11-19 2 views
-1

Предположим, у меня есть простое приложение, которое загружает данные в виде таблицы. Затем он позволяет вам просматривать детали (и т. Д.).iOS Objective C View Controller не использует свойства

Мой контроллер табличного вида на первой загрузке выглядит примерно так.

Извещение Я не использую объявления свойств для этих переменных. Это нормально? Существуют ли какие-либо недостатки в отношении способа обработки памяти?

@interface TblVC() 
{ 
    MBProgressHUD *hudLoad; // new up loading while I go get data 
    NSMutableArray *results; // set to results after loading data 
    CLLocationManager *locManager; // get location in view load 
} 
@end 

@implementation TblVC 
{ 
} 

- (void)viewDidLoad 
{ 
    // spin up the above variables here which can then be used in other methods inside view controller 
} 

ответ

1

Просто используйте свойства. Нет никаких оснований для использования переменных экземпляра старого стиля.

Документация Apple по свойствам подробно освещена в отношении преимуществ. https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/ProgrammingWithObjectiveC/EncapsulatingData/EncapsulatingData.html

0

Переменная экземпляра уникальна для класса. По умолчанию доступ к нему возможен только классу и подклассам. Поэтому в качестве фундаментального принципа объектно-ориентированного программирования переменные экземпляра (ivars) являются частными - они инкапсулируются классом.

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

Без имущества, ivars могут быть спрятаны. Фактически, если ivar не объявлен в публичном заголовке, трудно даже определить, что такой ivar существует.

Простая аналогия будет обернутой термоусадочной книгой. Свойством может быть название, автор или твердый переплет против мягкого обложки. «Иварцы» будут фактическим содержанием книги. У вас нет доступа к фактическому тексту, пока вы не владеете книгой; у вас нет доступа к иварам, если вы не владеете классом.

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