Я использую 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 ++?)