Метод класса

Метод класса является методом, воздействующим на объекты класса, а не экземпляры класса. В Objective C метод класса обозначен плюс (+) знак в начале объявления метода и реализации:

+ (void)classMethod;

Для отправки сообщения в класс Вы помещаете имя класса как получатель в выражении сообщения:

[MyClass classMethod];

Подклассы

Можно отправить сообщения класса в подклассы класса, объявившего метод. Например, NSArray объявляет метод класса array это возвращает новый экземпляр объекта массива. Можно также использовать метод с NSMutableArray, который является подклассом NSArray:

NSMutableArray *aMutableArray = [NSMutableArray array];

В этом случае новый объект является экземпляром NSMutableArray, нет NSArray.

Переменные экземпляра

Методы класса не могут относиться непосредственно к переменным экземпляра. Например, учитывая следующее объявление класса:

@interface MyClass : NSObject {
    NSString *title;
}
+ (void)classMethod;
@end

Вы не можете обратиться к title в реализации classMethod.

сам

В организации метода класса, self относится к самому объекту класса. Вы могли бы реализовать метод фабрики как это:

+ (id)myClass {
    return [[[self alloc] init] autorelease];
}

В этом методе, self относится к классу, в который было отправлено сообщение. Если Вы создали подкласс MyClass:

@interface MySubClass : MyClass {
}
@end

и затем отправленный a myClass сообщение к подклассу:

id instance = [MySubClass myClass];

во время выполнения, в организации myClass метод, self относился бы к MySubClass класс (и таким образом, метод возвратил бы экземпляр подкласса).

Необходимые как условие статьи

    (Ни один)

Похожие статьи

Категорическое обсуждение