Выпущенный объект вылетает приложение - PullRequest
1 голос
/ 16 апреля 2010

Я использую Objective-C ++ (+ Boost) для разработки iPhone.

Я нахожусь в довольно узком цикле и мне нужно выделить и освободить определенный объект.

Код примерно такой.

for (int i=0;i<100;i++)
{
    opt = [[FObj alloc] init];
    //do stuff with opt
    [opt release];
}

Объект FObj похож на

@interface FObj
  MyCPPObj  * cppobj;
@end

В реализации FObj есть метод dealloc:

-(void) dealloc
{
  delete cppobj; //previously allocated with 'new'
  [super dealloc];
}

Боюсь, что если я не отпущу, «MyCPPObj» просто накапливается. Но после запуска приложения происходит сбой после первого цикла. Что я делаю не так?

Или, может быть, я должен сделать cppobj и boost :: shared_ptr?

(ускоряют ли общие указатели автоматическое освобождение своих объектов при удалении объекта target-C ++?)

...