Смысл синглтона в том, что вы никогда не освобождаете его. Другие классы могут сохранять указатель на экземпляр, поэтому, если вы захотите заменить его, вы получите странное поведение или даже иногда произойдет сбой. Так что не стоит этого делать.
Но это возможно, если вы не перезаписали методы release
и retainCount
. Но ваше цитируемое сообщение об ошибке, похоже, говорит о том, что вы сделали что-то вроде [MyClass release];
, что, конечно, не работает.
Кстати, у вас, похоже, singleton
в качестве имени класса. Пожалуйста, старайтесь придерживаться правил кодирования, используемых Apple, чтобы сделать вашу жизнь и жизнь других людей проще. Имена классов всегда должны начинаться с символа в верхнем регистре, имена методов всегда должны начинаться с символа в нижнем регистре.