编译器无法在合理的时间对该表达式进行类型检查;尝试将表达式分解为不同的子表达式 [英] The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions

查看:63
本文介绍了编译器无法在合理的时间对该表达式进行类型检查;尝试将表达式分解为不同的子表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Ios编程的新手,以下表示出了错误:

I am new in Ios programming and the below expressing is giving an error:

let combine = date.enumerated().map {index, date in
 return (date,self.arrFriendId[index],self.arrFriendName[index],self.arrFriendImage[index],self.arrMsgType[index],self.arrMessage[index], self.arrLastMsgTime[index], self.arrNotifyStatus[index])}

请帮助我解决这个问题.预先感谢

please help me to solve this. thanks in advance

推荐答案

当单个表达式执行大量操作时,通常会发生此错误.因此,编译器告诉您将其分解为子表达式.

This error generally occurs when a single expression is doing a lot of things. So compiler tells you to break it to sub-expressions.

假设您想要类型为 Array< Any> 的输出 combine ,则可以这样操作:

Assuming you want the output combine of type Array<Any>, You can do it like this:

let combine = date.enumerated().map { index, date -> Any in
    let id = self.arrFriendId[index]
    let name = self.arrFriendName[index]
    let image = self.arrFriendImage[index]
    let messageType = self.arrMsgType[index]
    let message = self.arrMessage[index]
    let messageTime = self.arrLastMsgTime[index]
    let status = self.arrNotifyStatus[index]
    return (date, id, name, image, messageType, message, messageTime, status)
}

这篇关于编译器无法在合理的时间对该表达式进行类型检查;尝试将表达式分解为不同的子表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆