如何正确更新用户个人资料图像

时间:2019-11-22 09:31:32

标签: ios swift xcode firebase

上传用户profileImage的更新代码是什么,我在尝试更新用户profileImage时遇到错误。

如何解决此错误?

  

无法使用参数列表为'UIImage'的类型调用初始化程序   输入'((@escaping()->())'

self.ProfileImage.image = UIImage{data; data!}

2 个答案:

答案 0 :(得分:1)

您正在使用{大括号},而您需要使用(圆括号)

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <tcl.h>
#include <errno.h>
#include <fcntl.h>

void fwStdinKeyHandler(ClientData clientData, int mask)
{
  unsigned char c = 0;
  int rc = read(STDIN_FILENO, &c, 1);
  //printf("rc is : %d\n",rc);
  while (rc < 1 && errno == EINTR) {}
}


static void MainLoop(void)
{
  Tcl_CreateFileHandler(STDIN_FILENO, TCL_READABLE, fwStdinKeyHandler,    NULL);
  while (1) {
    Tcl_DoOneEvent(0);
  }
  fprintf(stdout,"Exit MainLoop\n");
  fflush(stdout);
}

static int Hello_Cmd(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
{
  Tcl_SetMainLoop(MainLoop);
  return TCL_OK;
}

 /*
  * Hello_Init -- Called when Tcl loads your extension.
  */
int DLLEXPORT  Cmd_Init(Tcl_Interp *interp)
{
  if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL) {
    return TCL_ERROR;
  }
  /* changed this to check for an error - GPS */
  if (Tcl_PkgProvide(interp, "Hello", "1.0") == TCL_ERROR) {
    return TCL_ERROR;
  }
  Tcl_CreateObjCommand(interp, "doone_loop", Hello_Cmd, NULL, NULL);
  return TCL_OK;
}

答案 1 :(得分:0)

您的代码很少出现问题,例如您使用{}而不是()。 因此,代码实际上看起来像...

self.ProfileImage.image = UIImage(data: data!)

但是由于data是可选值,如果处理不正确,它可能为nil。这将导致您的应用程序崩溃。因此,在这种情况下,请使用可选绑定来检查数据变量是否实际包含任何值,如下面的代码。

    if let imageData = data{
        self.ProfileImage.image = UIImage(data: imageData)
    }else{
        self.ProfileImage.image = UIImage(named : "image_when_no_value_is_present")
}