пользовательский класс = пользовательский + alloc, custom + init - PullRequest
0 голосов
/ 27 июля 2010

Я новичок с целью c для iphone.

Я пишу собственный класс, тогда я должен написать свои собственные методы + alloc + init? Я считаю, что: + alloc просто вызовет [вещь alloc]; и + init выполнит что-то вроде: [thing setValue: X];

есть ли методы по умолчанию + alloc и + init? если да, то что мне ждать по умолчанию + alloc и + init? скажем, у меня есть NSMutableDictionary * т.е.

@interface class1 : NSObject {

    NSString *test; 
    NSMutableDictionary *map;
}

спасибо

Ответы [ 2 ]

5 голосов
/ 27 июля 2010

Как правило, вам не нужно писать собственный метод + alloc.

Например, у вас может быть -init, который выглядит следующим образом:

- (id)init {
    self = [super init];
    if (self) {
        map = [[NSMutableDictionary dictionary] retain];
    }
    return self;
}

Обратите внимание, что вы сначалавызовите суперкласс -init и убедитесь, что он работает, прежде чем инициализировать свои собственные переменные.

2 голосов
/ 27 июля 2010

Вы должны НИКОГДА переопределить alloc.

Что касается init, который является методом экземпляра , кстати, да это место, где вы, вероятно, захотите настроить переменные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...