class DarkRaha extends com { // разработка приложений
            String a="Главная" b="Контакты" c="О сайте"
};

основы

введение
строки
массивы
ассоциативные массивы
значения null и nil

ООП

создание класса
конструктор/деструктор
методы
инкапсуля́ция
свойства
протокол
категории
селектор

разное

исключения
управление памятью

Справочник по Objective-c

Свойства

Начиная с 2.0 язык поддерживает свойства объекта. Это позволяет по желанию автоматически генерировать сетер/гетер - методы задания и получения значения свойства. Во-вторых к свойствам можно обратиться через точку.

объявление свойства

Делается ключевым словом @property, может иметь следующие дополнительные атрибуты:


@interface MyObj : NSObject {
   @private int iProp; // член для свойства 
}

// определяем свойство
@property (readwrite,assign) int iProp;
@end

методы доступа к свойству

По умолчанию для чтения генерируется метода с именем свойства, в нашем случае iProp. Для записи метод с префиксом set..., в нашем случае setIProp;

 
@implementation MyObj 
    @synthesize iProp;
@end 

Синтезируемые имена методов доступа могут отличаться от имени свойства.

 
@implementation MyObj 
    @synthesize anyprop = iProp;
@end 

Можно определить собственные методы доступа через ключевое слово @dynamic.


@implementation MyObj
@dynamic iProp;

-(int)iProp {
        NSLog(@"читаем iProp");
        return 1;
}

-(void)setIProp:(int)inIProp {
        NSLog(@"записываем в iProp");
        iProp=inIProp;
}
@end

доступ к свойствам

Обратите внимание, что вы можете обратиться как к члену класса, так и к свойству. Если свойство определено с атрибутом retain, а инициализацию делаете через член класса, то счетчик ссылок не увеличится. Что может привести к крушению программы без каких-либо сообщений в консоли. (Например, я делал массив объектов для отображения списка, а элемент массива инициализировал как член класса без увеличения счетчика).


//обращаемся к члену класса 
iProp = anyval;

// обращаемся к свойству класса
self.iProp = anyval;

// из вне
MyObj * myObj = [[MyObj alloc] init];
myObj.iProp=anyval;

освобождение ресурсов

При уничтожении объекта следует освободить объекты на которые ссылаются свойства с атрибутом retain.


- (void) dealloc { [iProp release];  [super dealloc]; }

Рейтинг@Mail.ru