1

私はiPhone開発にobjective-C++(+ Boost)を使用しています。

私はかなりタイトなループにあり、特定のオブジェクトを割り当てて解放する必要があります。

コードはこんな感じです。

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を作成する必要がありますか?

(ブースト共有ポインターは、objective-C ++オブジェクトが削除されたときにオブジェクトを自動的に解放しますか?)

4

0 に答える 0