我已經在使用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