2010-03-24 1 views
3

У меня есть очень простой класс данных, который подклассифицирован из NSObject. Я объявляю несколько строк, удостоверяюсь, что у них есть свойства (неатомные, копии) и синтезируются. Единственным методом, который я реализовал, был dealloc(), который выпускает мои строки. Из-за этого возникают проблемы памяти? Существуют ли какие-либо другие методы, которые мне нужно реализовать?Подкласс NSObject, может ли это вызвать проблемы?

ответ

9

Подкласс NSObject - это то, что мы делаем все время. Просто следуйте правилам управления памятью, и вам хорошо идти.

4

Вы можете реализовать пользовательский init, если хотите что-то настроить.

-(id)init { 
    if (!(self = [super init])) 
      return nil; 

    // Set things up you might need setting up. 
    return self; 
} 

Но это только если есть что-то, что вы хотите иметь, прежде чем вы вызовете что-нибудь еще в классе.

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

2

Проблем не возникнет. Подклассификация NSObject является абсолютно приемлемой и в 99% случаев требуется.

Подклассификация NSObject, ваш подкласс получает все необходимое поведение, которое ожидается от любого объекта в Cocoa/Cocoa Touch. Это включает в себя такие вещи, как система управления подсчетной системой отсчета с использованием retain и release и т. Д.

1

Что вы делаете в порядке. Обязательно вызовите [super dealloc] в конце вашего подкласса -dealloc.