У меня есть очень простой класс данных, который подклассифицирован из NSObject. Я объявляю несколько строк, удостоверяюсь, что у них есть свойства (неатомные, копии) и синтезируются. Единственным методом, который я реализовал, был dealloc(), который выпускает мои строки. Из-за этого возникают проблемы памяти? Существуют ли какие-либо другие методы, которые мне нужно реализовать?Подкласс NSObject, может ли это вызвать проблемы?
ответ
Подкласс NSObject - это то, что мы делаем все время. Просто следуйте правилам управления памятью, и вам хорошо идти.
Вы можете реализовать пользовательский init, если хотите что-то настроить.
-(id)init {
if (!(self = [super init]))
return nil;
// Set things up you might need setting up.
return self;
}
Но это только если есть что-то, что вы хотите иметь, прежде чем вы вызовете что-нибудь еще в классе.
Просто использование метода dealloc должно быть в порядке, в противном случае.
Проблем не возникнет. Подклассификация NSObject
является абсолютно приемлемой и в 99% случаев требуется.
Подклассификация NSObject
, ваш подкласс получает все необходимое поведение, которое ожидается от любого объекта в Cocoa/Cocoa Touch. Это включает в себя такие вещи, как система управления подсчетной системой отсчета с использованием retain
и release
и т. Д.
Что вы делаете в порядке. Обязательно вызовите [super dealloc]
в конце вашего подкласса -dealloc
.