我已经在使用Objective-C++的iOS项目中调整了Matt Gallagher的"Testing if an arbitrary pointer is a valid object pointer"。它与Objective-C对象一起工作良好,但它始终告诉我,无论C++指针是否工作,我的C++指针都是无效的。有时代码会在指针处崩溃。有时代码工作正常。但是测试方法总是告诉我指针是错误的。检查C++指针是否有效(在Objective-C(++)中)
在这里任何人都知道将此代码调整为C++类和对象吗?我可以想象,根据“类”的使用,代码只与Objective-C一起工作。
当您检查指针是否有效时,您是否尝试过使用'nullptr'?如果你想检查有效数据,那么你需要取消引用指针,如果指针本身无效,这将导致exc_bad_access(segfault)。截至目前,我不认为有任何方法可以实际检查数据。 – 2014-11-25 12:31:51
该方法对Apple的Objective-C实现非常具体,最多也不可靠。对于C++来说,没有办法做类似的事情,正如作者指出的那样,“不要在生产代码中使用它”。 – molbdnilo 2014-11-25 12:33:31
@AlexanderW是的,我们正在检查nullptr,null,nil,0 ...但是代码有时总是继续执行,然后崩溃,然后用EXC_BAD_ACCESS找不到... => molbdnilo我们仅使用它来编写调试日志以获取有关我们内部测试人员工作流程的详细信息。他们通常不会正确地报告崩溃... – 2014-11-25 12:36:00