Каким-то образом я вижу увеличение памяти в моем симуляторе (бегущая гистограмма).
У меня есть объект с именем MyObject
, в котором нет ничего, кроме int
. В каком-то другом классе (скажем, MyCar
в MyCar.h) у меня есть массив MyObject
, например. MyObject* junk[8];
и метод возврата конкретного по индексу:
-(MyObject*) getJunk:(int) index{
if(junk[index] == nil){
return nil;
}
return junk[index];
}
В другом классе под названием DataModel
у меня есть MyCar *mycar;
в DataModel
я вызываю метод ask
-(void) ask{
if(mycar == nil){
return nil;
}
for(int i=0;i<8;i++){
if( [mycar getJunk:i] == nil){
continue;
}
}
}
Я звоню [self ask]
каждый раз по 10 000 раз. Я использую ARC, но каждый раз замечаю, что полоса памяти iOS поднимается вверх. Итак, что-то накапливает память; Не знаю что, у меня нет alloc
. Да, это происходит, даже если я пишу такой бесполезный код, который ничего не делает с junk[i]
, возвращаемым в модель данных.
я даже пытался
-(void) ask{
if(mycar == nil){
return nil;
}
for(int i=0;i<8;i++){
MyObject* temp_junk = [mycar getJunk:i];
if( temp_junk == nil){
continue;
}
temp_junk = nil;
}
}