Mar*_*ein 2 xcode clang objective-c++
运行XCode 4.6的分析器和新的clang编译器,我发出了警告
被调用的C++对象指针为空
即使是像保守的表达
- (BOOL) validate: (Node*) node
{
if (!self.hypertext) return YES;
return self.hypertext->HasNode(node);
}
Run Code Online (Sandbox Code Playgroud)
1)我怎样才能说服静态分析仪这是否得到了适当的保护?2)在某些情况下,我可能想断言指针不会为空.怎么样?
这里的问题是你没有使用指针但是使用ObjC调用的结果.
虽然非常不可能,但分析器将看到以下情况:第一次调用中返回的指针不为null,因此测试通过,第二次调用中返回的指针为null.
您应该能够使用局部变量解决问题.
- (BOOL) validate: (Node*) node
{
YourType ht = [self hypertext];
if (!ht) return YES;
return ht->HasNode(node);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |