绑定解除引用的空指针引用具有未定义的行为Xcode 9

时间:2018-02-01 03:13:20

标签: c++ ios objective-c xcode xcode9

我正在Xcode 9上运行Objective-C项目并面临这个错误状态

编辑:使用AutoDesk的FBXSDK。我认为它与俚语版本相关,这是Xcode 9中的新功能(该项目是用Xcode 7编写的)。如果我理解正确,我需要从这个link恢复clang到旧版本。使用虚幻引擎时也存在同样的问题。

  

绑定取消引用的指向引用的空指针具有未定义的行为

我尝试运行的脚本是以下

const FbxProperty& StaticInit(FbxObject* pObject, const char* pName, const FbxReference& pValue, bool pForceSet, FbxPropertyFlags::EFlags pFlags=FbxPropertyFlags::eNone)
{
    return StaticInit(pObject, pName, FbxGetDataTypeFromEnum(FbxTypeOf(*((FbxReference*)0))), pValue, pForceSet, pFlags);
}

StaticInit方法

const FbxProperty& StaticInit(FbxObject* pObject, const char* pName, const FbxDataType& pDataType, const FbxReference& pValue, bool pForceSet, FbxPropertyFlags::EFlags pFlags=FbxPropertyFlags::eNone)
{
    bool lWasFound = false;
    *this = Create(pObject, pDataType, pName, "", true, &lWasFound);
    if( pForceSet || !lWasFound )
    {
        ModifyFlag(pFlags, true);   // modify the flags before we set the value
        Set(pValue);            // since we will trigger callbacks in there!
    }
    ModifyFlag(FbxPropertyFlags::eStatic, true);
    return *this;
}

Xcode底层*((FbxReference*)0为错误。

Error Image

1 个答案:

答案 0 :(得分:-1)

通过将0更改为1来解决。

return StaticInit(pObject, pName, FbxGetDataTypeFromEnum(FbxTypeOf(*((FbxReference*)1))), pValue, pForceSet, pFlags);