2015-04-15 93 views
0

我在我的應用程序下面的代碼的iOS迅速串不比較平等

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:「週三

gobj_DOWs [iobj_NearbyLocationsVM.DOWToUse] .DOWName: '星期三'

但是,在我的if語句中,這些值不會相等。我知道這是因爲GPSLocationChanged行上的斷點和斷點始終被打中。任何想法,爲什麼?

+0

您如何確定這些值並不相等? – nhgrif

+1

在打印和測試相等性之前,您應該存儲中間字符串的結果。這些值可能在打印語句和相等性測試之間發生了變化,或者打印輸出的值可能與實際測試的值不同,難以注意。 – mattt

+0

代碼行與我的應用程序完全相同。我在if語句之前立即println,所以他們不能改變。我知道他們沒有比較平等,因爲GPSLocationChanged函數正在執行。我已經在該代碼行上放置了一個斷點,並且一直處於打擊狀態。 –

回答

0

所以我改變了代碼,如下所示,現在它似乎工作。

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)的圖騰柱的底部。