这个问题的两个部分
1)这种对正在发生的事情的理解是否正确?
“if (obj)” 正在测试指针是否不是 0x0,也就是设置为整数内存地址
“if (obj != nil)” 正在将对象的内存地址与通用 nil 对象的内存地址进行比较
2)所以在我不知道变量是否指向任何东西的情况下,如果是,我也不知道该对象是有效对象还是零。我想根据这些信息做各种各样的事情,而不仅仅是将消息传递给 obj,我意识到如果它为 nil 将是安全的。这段代码是否正确且必要?
if (obj && obj != nil) {
// Do a bunch of things that should only happen if obj is pointing to a valid object
[obj someMessage];
[anotherObj someOtherMessage];
}
多谢你们!