Объект сохранить счет - PullRequest
       8

Объект сохранить счет

0 голосов
/ 28 апреля 2011

Я выделил объект следующим образом:

PixelInfo *ob1=[[PixelInfo alloc]initWithName:clr :t];

Тогда дополнительный счет объекта равен 1.

Тогда я сделал так ....

[faceColor addObject:ob1];

Затем количество сохраненных данных увеличилось до 2. Почему?

for(b=xi[i];b<=(xi[i+1]+1);b++)
        {   


            CGPoint t;
            t.x=b;
            t.y=y;

            UIColor *clr=nil;
            clr=[self getPixelColorAtLocation:loadImage.CGImage :t];    

             PixelInfo *ob=[[PixelInfo alloc]initWithName:clr :t];                    
             [faceColor addObject:ob];
             [ob release];
          }

Это мой код. Даже после освобождения объекта ob происходит утечка памяти. Почему?

Ответы [ 3 ]

1 голос
/ 28 апреля 2011

Все объединения (Array, Dictionary, Set) увеличивают количество сохраняемых объектов, когда вы делаете [smth addObject: obj].

PS.AddSubview также увеличить сохранить количество просмотров subview

0 голосов
/ 28 апреля 2011

Полагаю, faceColor является NSMutableArray.Когда вы добавляете объект в контейнер, такой как NSArray или NSDictionary, контейнер сохраняет добавленный объект.Это потому, что контейнер теперь полагается на добавленный объект, чтобы продолжать существовать, пока он находится внутри контейнера.

0 голосов
/ 28 апреля 2011

В приведенном ниже утверждении вы предоставили объекту значение, при этом количество записей увеличится на 1, поэтому вы получаете 1.

PixelInfo *ob1=[[PixelInfo alloc]initWithName:clr :t];

В следующем утверждении я считаю faceColor NSMutableArray

[faceColor addObject:ob1];

Вы добавляете объект ob1 в массив, поэтому iOS увеличит количество сохраняемых объектов любого объекта на 1, если вы добавите это в массив,

Вот причина того, что вы сохранили счет 2.

РЕДАКТИРОВАНИЕ:

Вот что говорит яблоко.

Важно: Этот метод обычно не имеет значения при отладке проблем управления памятью. Поскольку любое количество объектов каркаса могло сохранить объект для хранения ссылок на него, в то время как пулы автоматического выпуска могут содержать любое количество отложенных выпусков для объекта, маловероятно, что вы можете получить полезную информацию из этого метод.

...