我正在使用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?
(当删除Objective-C ++对象时,是否会提升共享指针自动释放对象?)