上传用户profileImage的更新代码是什么,我在尝试更新用户profileImage时遇到错误。
如何解决此错误?
无法使用参数列表为'UIImage'的类型调用初始化程序 输入'((@escaping()->())'
self.ProfileImage.image = UIImage{data; data!}
答案 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")
}