Привет, ребята У меня есть вопрос относительно следующей проблемы.Сохранение поведения при использовании (сохранении) свойства
У меня есть два объекта: aClass и bClass. aClass должен содержать bClass, используя свойство сохранения. После instanciating bClass (здесь я не использую распределитель удобства, потому что я хочу решить мою проблему с недоразумением здесь), bClass назначается aClass с помощью setProperty aClass.
На протяжении всего процесса я проверяю saveCount bClass, задавая ссылку, а также запрашивая через свойство aClass.
Насколько я понял, управление памятью Objective C, указанные учетные значения должны быть одинаковыми, потому что я разделяю права собственности на объект между свойством и ссылкой.
Мне кажется, что у меня есть серьезная проблема в понимании управления памятью. Может, кто-то может объяснить мне мою ошибку. Thx заранее.
Header of ClassA
@property (retain)ClassB *myProperty;
Source of ClassA
@implementation ClassA
-(id)init {
self = [super init];
if (self) {
ClassB * bClass = [[ClassB alloc] init];
NSLog(@"Temporary bClass retain count = %d", [bClass retainCount]);
self.myProperty = bClass;
NSLog(@"retain count after giving ownership to ClassA = %d", [bClass retainCount]);
[bClass release];
NSLog(@"retain count of bClass after release = %d", [bClass retainCount]);
NSLog(@"retain count of myProperty of ClassA = %d", [self.myProperty retainCount]);
}
return self;
}
Выход:
Временные bClass сохраняют отсчет = 1
сохранить счетчик после предоставления права собственности на ClassA = 2
сохраняют отсчет bClass после освобождения = 1
сохранить значение myProperty of ClassA = 2
Не используйте '-retainCount'. Это не полезно. Http://stackoverflow.com/questions/4636146/when-to-use-retaincount – newacct