iOS swift 字符串比较不相等

iOS swift strings do not compare as equal

我的应用程序中有以下代码

    println("currentTitle : '" + btnDOW.currentTitle! + "'")
    println("gobj_DOWs[iobj_NearbyLocationsVM.DOWToUse].DOWName: '" + gobj_DOWs[iobj_NearbyLocationsVM.DOWToUse].DOWName + "'")

    if btnDOW.currentTitle!.uppercaseString != gobj_DOWs[iobj_NearbyLocationsVM.DOWToUse].DOWName.uppercaseString
    {
        //reload the data
        GPSLocationChanged()
    }

两条语句的println输出如下:

currentTitle : 'Wednesday'

gobj_DOWs[iobj_NearbyLocationsVM.DOWToUse].DOWName: 'Wednesday'

但是,在我的 if 语句中,这些值并不相等。我知道这是因为 GPSLocationChanged 行上的断点和断点总是命中。知道为什么吗?

所以我按如下方式更改了代码,现在它似乎可以工作了。

    println("currentTitle : '" + btnDOW.currentTitle! + "'")
    ls_WorkTitle = btnDOW.currentTitle!


    println("gobj_DOWs[iobj_NearbyLocationsVM.DOWToUse].DOWName: '" + gobj_DOWs[iobj_NearbyLocationsVM.DOWToUse].DOWName + "'")
    ls_WorkDOWName = gobj_DOWs[iobj_NearbyLocationsVM.DOWToUse].DOWName

    //if btnDOW.currentTitle!.uppercaseString != gobj_DOWs[iobj_NearbyLocationsVM.DOWToUse].DOWName.uppercaseString

    if ls_WorkTitle.uppercaseString != ls_WorkDOWName.uppercaseString
    {
        //reload the data
        println("Dow Of Week Values are different")
        GPSLocationChanged()
    }

打印行和 if 语句之间的这些值中的任何一个都不应发生任何变化。为什么我有必要在比较之前将它们放入新变量中?这太荒谬了。

这是我第一次使用 IOS 开发,到目前为止,不得不说它几乎处于开发平台和语言图腾柱的底部 (Swift)。