Синтаксис Objective C вопрос - PullRequest
       0

Синтаксис Objective C вопрос

0 голосов
/ 25 августа 2010

Я вижу, что класс UIColor может вызывать переменную следующим образом [UIColor redColor]; Как я могу написать свой класс, чтобы сделать то же самое? Кроме того, я могу иметь метод только для класса, например, так:

[MyClass CallingMyMethod];

Спасибо.

Ответы [ 4 ]

2 голосов
/ 25 августа 2010

Да. Просто используйте + вместо - при объявлении метода:

+ (void)callingMyMethod
{
   ...
}
0 голосов
/ 25 августа 2010

Используйте + вместо -. Это называется методом класса и используется для инициализации и возврата объекта.

@interface SomeClass : NSObject
+ (id)callingMyMethod;
- (id)otherMethod;
@end

@implementation SomeClass

+ (id)callingMyMethod
{
    return self;    // The class object
}

- (id)otherMethod
{
    return self;    // An instance of the class
}
0 голосов
/ 25 августа 2010

Да, это сообщения класса вызовов.Используйте + вместо - при определении сообщения.

Примерно так:

@interface MyClass : NSObject 
{

}

+ (void) callingMyMethod;
0 голосов
/ 25 августа 2010

Вы должны создать метод класса.Методы класса определены как метод экземпляра, но имеют + вместо -:

@interface MyClass : NSObject
+ (id)classMethod;
- (id)instanceMethod;
@end

@implementation MyClass

+ (id)classMethod
{
    return self;    // The class object
}

- (id)instanceMethod
{
    return self;    // An instance of the class
}

Обратите внимание, что в методе класса переменная self будет ссылаться на класс, а не наэкземпляр класса.

...