在FB之后访问FBResult时出错.协程中的 API 调用



在FB之后访问FBResult的文本(和错误)属性时。协程中的 API 调用存在 NullReferenceException,因为内部 WWW 对象已被释放。

    FBResult result = null;
    FB.API(query,httpMethod,(r)=>{
        result = r;
    });
    while(result==null) yield return null;
    print(result.Text);//Accessing result.Text produces error.

NullReferenceException:WWW 类已被释放。

UnityEngine.WWW.get_text ()

FBResult.get_Text ()

文档明确指出

请注意,FBResult 实现了 IDisposable,这意味着 FBResult 调用回调后,对象会受到释放的影响。如果 你想保存纹理或字符串,保存这些值 而不是试图拯救FBResult本身。

你应该在

回调中使用结果,因为这是回调的全部意义。

FBResult result = null;
FB.API(query,httpMethod,(r)=>{
    result = r;
    print(result.Text);
});

以你正在做的方式在外面等待并不是正确的方法。

最新更新