1
在某人的项目中,我发现了一个错误。我知道这是错误的。但它运作良好。在xcode“.mm”文件中设置一个C++类nil。
在.mm文件做这样
- (void) DestroySelfBody{
[self unschedule:@selector(DestroySelfBody)];
if (m_body) {
m_body->GetWorld()->DestroyBody(m_body);
m_body = nil;
}
}
m_body是由定义(b2Body是一个C++类):
b2Body * m_body;
你的意思是:m_body = NULL; nullptr没有被定义。 – zszen
现在我想知道为什么设置m_body = nil不显示错误并且运行良好。 – zszen
@zszen'nullptr'是C++ 11(此功能可用在铛一段时间)。如果你必须使用旧版本的C++,那么NULL将是一个很好的替代品。有一些基本的等价性 - 事实上,在最近的系统头文件中,'nil'和'Nil'被定义为'nullptr'。尽管存在这种基本的等价性,但人们仍然将'nil'与objc对象关联起来,而不是C++类型。 – justin