Если у меня есть класс
@interface Foo {
NSString *temp;
}
@property(nonatomic, copy) NSString *temp;
@end
Я понимаю, что при назначении старый темп будет освобожден, а новый будет назначен с помощью temp = [newTemp copy]
. И, следуя правилам управления памятью, вы должны делать [temp release]
в методе dealloc Foo, верно?
Что я не понимаю, так это то, что происходит, если сеттер никогда не использовался - у вас все еще есть [temp release]
в диллоке, поэтому он выпускает что-то с счетом сохранения 0. Может кто-нибудь объяснить это мне? *