无法使用参数调用“==”[重复]

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 进行比较 那么也许你的核心数据属性不是可选类型?属性是什么类型 - 是 StringString? 还是 String!?如果它是第一个,那么你真的不能将它与 nil 进行比较,因为 Swift 认为它需要有一个值。 它被设置为字符串我将它更改为字符串!我相信它现在正在按照我想要的方式工作。谢谢! 【参考方案1】:
var comments: String? = nil
if let comments = comments 
    println(comments)
 else 
    println("empty")
    

【讨论】:

以上是关于无法使用参数调用“==”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法使用类型为 [重复] 的参数列表调用类型“NSAttributedString”的初始化程序

无法使用 Symfony 进程运行带有参数的 Laravel Artisan 命令 [重复]

无法使用双指针作为函数参数传递二维数组[重复]

无法调用带参数的线程函数

使用范围参数覆盖的 std::regex_search 无法编译 [重复]

无法使用类型参数列表调用“requestAuthorizationToShareTypes”