освобождение памяти статического объекта - PullRequest
0 голосов
/ 10 июля 2010

Мой квест

-(ABC*)createInstance
{
  Static ABC *obj = [[alloc ABC] init];

  if(obj == nil)
  {
    obj = [[alloc ABC] init];
  }
  return obj
}

можем ли мы написать в цели c

[[ABC createInstance] release]

1 Ответ

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

Да, пользователи могут освободить ваш экземпляр, если вы не изменили значение retain / release.Взгляните на распространенных одноэлементных паттернов для лучшего подхода.

Примечания:

  • Это [ClassName alloc], а не [alloc ClassName]
  • Если вы хотите сделать createInstance метод класса, используйте + (ABC*)createInstance;
  • Это static, а не Static
  • Вы должны инициализировать objnil
  • Используйте self вместо ABC, если проблема заключается в создании подклассов: [self alloc]
  • Общее название для этих методов: sharedInstance
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...