Я столкнулся с проблемой сохранения счета, которую я не понимаю.(Я добавил то, что я считаю количеством сохраняемых вершин в [] в конце каждой строки кода).
CBVertex *vertex = nil;
for(int i=0; i<10; i++) {
vertex = [[CBVertex alloc] initWithFrame:CGRectMake(minX, y, 10.0, 10.0)]; // retain count [1]
[vertex setTag:i];
[vertex setAnimationDelegate:self];
[gameboard addSubview:vertex]; // retain count [2]
[tripGraph addVertex:vertex]; // retain count [3]
[vertex release]; vertex=nil; // retain count [2]
}
CBVertex - это подкласс UIView, игровая доска - это UIView, а tripGraph - это класс, который, помимо прочего, имеет NSMutableArray (privateVerticies), к которому добавляется вершина в его методе addVertex.
После выполнения вышеприведенного, Instruments показывает, что существует 10 экземпляров CBVertex.
Позже в выполнении кода (я подтвердил, что этот код выполняется):
[[tripGraph verticies] makeObjectsPerformSelector:@selector(removeFromSuperview)];
// gameboard should have no references to any of the CBVertex's (correct??)
[tripGraph removeAllVerticies];
// tripGraph privateVerticies is empty and no references to any of
// the CBVertex's (correct?)
Соответствующие методы tripGraph:
-(NSArray *) verticies {
return [NSArray arrayWithArray:privateVerticies];
}
-(void) tripGraph removeAllVerticies {
[privateVerticies removeAllObjects];
}
- (void) addVertex:(CBVertex *)vertex {
[privateVerticies addObject:vertex];
}
Проблема возникает при создании второго набора CBVertex.Инструменты показывают, что первый набор CBVertex все еще жив (то есть число экземпляров CBVertexs теперь составляет 20).
Я (очевидно?) Где-то пропускаю релиз, но не понимаю, где.,,
Помощь / указатели приветствуются !!
спасибо
Том