Как установить переменную экземпляра из метода класса в ObjC - PullRequest
1 голос
/ 14 июля 2010

У меня есть одноэлементный инициализатор, который является методом класса.Я хочу установить переменные данных экземпляра из него.Как я могу это сделать?

Ответы [ 4 ]

3 голосов
/ 14 июля 2010

Переменные экземпляра доступны с помощью оператора указателя структуры.
Вам не нужны свойства для этого:

+ ( MyClass * )sharedInstance
{
    @synchronized( self )
    {
        if( instance == nil )
        {
            instance       = [ [ self alloc ] init ];
            instance->iVar = @"someValue";
        }
    }
    return instance;
}
0 голосов
/ 14 июля 2010

Этот метод init Например.Я так и делаю ...

-(id)initWithName:(NSString *)name {
    if(self = [super init]) {
       self.name = name;
    }
    return self;
}

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

Sandro

0 голосов
/ 14 июля 2010

Чем я не знаю, что вы имеете в виду. Вы хотите установить переменную экземпляра? Это возможно (См. Пример ниже) Но если вы хотите получить к нему доступ, это невозможно. Потому что их нет в классе. Они существуют только в объекте ... Пример:

+(YourClass *)YourClassWithName:(NSString *)name {
   if(self = [super init]) {
      self.name = name;
   }
   return [self autorelease];
}

Если ты не это имел в виду, я не знаю, что ты имел в виду. ^^

0 голосов
/ 14 июля 2010

Вам нужен экземпляр для вызова метода экземпляра. Поэтому либо создайте экземпляр и вызовите его методы, либо используйте методы класса.

Должен ли я изменить эти методы экземпляра быть методами класса?

Если методы не связаны с экземпляром, было бы неплохо заменить их на методы класса.

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