传递给另一个方法时,callback delegate为null

时间:2017-09-15 00:18:10

标签: c# ios firebase unity3d delegates

我正在尝试为一个统一应用程序完善登录和注册脚本。我创建了一个回调操作委托,并尝试通过lambda表达式传递参数。但是,当它在第二个脚本中调用另一个函数时,我得到一个空引用异常。

这就是我传递它的方式。注意registerUser是第二个脚本

if (checkPassword(password) && password == confirm)
        {
            registerUser.RegisterScene(email, password, user, (isSuccess, errorMsg) =>
            {
                if (isSuccess)
                {
                    Debug.Log(errorMsg);
                    StartCoroutine(errorMessage(errorMsg, Color.green, 3f));
                }

                if (!isSuccess)
                {
                    Debug.Log(errorMsg);
                    StartCoroutine(errorMessage(errorMsg, Color.red, 3f));
                }
            });
        }

这是我得到空引用异常的地方。

public static void RegisterScene(string email, string password, string user, Action<bool, string> callback)
{
    _instance.registerAsync(email, password, user, callback);
}

我不确定为什么我会收到这个错误,所以如果有人能为我清楚这一点,那将是非常感谢!

编辑:这是我如何宣布我的单身人士。我没有让它线程安全或放任何花哨的东西。我只想让它工作

public Profile()
{

}

void start()
{
    Debug.Log(_instance);
    if (_instance == null)
    {
    _instance = new Profile();
    Debug.Log(_instance);
    }
}

0 个答案:

没有答案