无法使用参数调用“==”[重复]
Posted
技术标签:
【中文标题】无法使用参数调用“==”[重复]【英文标题】:Cannot invoke '==' with argument [duplicate] 【发布时间】:2015-01-05 04:57:38 【问题描述】:我通过向实体添加属性来更改我的核心数据模型。我已经完成了轻量级迁移,但是当我运行该应用程序时,对于添加的属性,我得到了一些零,因此崩溃了。我只是想检查一个 nil 并排除该属性,如果它是 nil 以避免崩溃。我尝试使用 if 语句来执行此操作,但标题中出现错误。我该如何解决这个问题?
if comments == nil
cell.textLabel!.text! = "\(totalWorkTimeInHours) hours"
cell.detailTextLabel!.text! = "Date: \(dateString)"
else
cell.textLabel!.text! = "\(totalWorkTimeInHours) hours"
cell.detailTextLabel!.text! = "Date: \(dateString)\nComments: \(comments)"
"Comments" 是来自 Core Data 的字符串。我知道该错误与我无法将字符串与 nil 进行比较这一事实有关,但我不知道该怎么做。
感谢您的帮助!
【问题讨论】:
你试过if let
语法吗?
它仍然抱怨尝试将字符串与 nil 进行比较
那么也许你的核心数据属性不是可选类型?属性是什么类型 - 是 String
或 String?
还是 String!
?如果它是第一个,那么你真的不能将它与 nil 进行比较,因为 Swift 认为它需要有一个值。
它被设置为字符串我将它更改为字符串!我相信它现在正在按照我想要的方式工作。谢谢!
【参考方案1】:
var comments: String? = nil
if let comments = comments
println(comments)
else
println("empty")
【讨论】:
以上是关于无法使用参数调用“==”[重复]的主要内容,如果未能解决你的问题,请参考以下文章
无法使用类型为 [重复] 的参数列表调用类型“NSAttributedString”的初始化程序
无法使用 Symfony 进程运行带有参数的 Laravel Artisan 命令 [重复]