Вопрос

Я хочу написать несколько методов в классе, чтобы другие классы могли вызывать эти методы, используя [instance methodName:Parameter].

Если класс является подклассом UIViewController, Я могу использовать initWithNibName чтобы инициализировать его.Но я хочу написать методы в NSObject's подкласс, как его инициализировать?

Это было полезно?

Решение 2

Я считаю, что это может сработать:

TheClass *newObject = [[TheClass alloc] init];
//do something here
[newObject release];

Другие советы

iphony прав, но он или она не говорит, что вам нужно написать метод init самостоятельно.Ваш метод init обычно должен выглядеть примерно так:

- (id) init
    {
    if (self = [super init])
         {
         myMember1 = 0; // do your own initialisation here
         myMember2 = 0;
         }
    return self;
    }

Хотя документация Apple говорит

Метод init, определенный в классе NSObject, не выполняет инициализацию;он просто возвращает self.

и можно просто поддаться искушению написать

- (id) init
  {
    myMember1 = 0; // do your own initialisation here
    myMember2 = 0;
    return self;
  }

это НЕПРАВИЛЬНО и не соответствует тому, что явно указано в документации:

В пользовательской реализации этого метода (init) вы должны вызвать назначенный инициализатор Super, а затем инициализировать и вернуть новый объект.

ДОЛЖЕН.Не следует, можно, следует и т. д.

Не следует предполагать, что инициализация NSObject не изменится в будущем;ни суперкласс, от которого происходит ваш собственный класс.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top