2017-02-20 143 views
0

我正在使用swift和objective兩個項目。我之前的團隊成員用目標C編寫了這些代碼,這是我不熟悉的。存在的問題是涉及從Sqlite存儲和檢索值的大部分內容都是obj。這是在一個普通的類中完成的,以避免代碼贖回。但是,如果我使用swift通過該obj C文件檢索值發生問題。如果該指定行中沒有值,則返回「null」。 enter image description here在swift中檢查空值(不爲零或NSnull)總是返回nil?

更新:由安東尼Raphel Same error persists.

即使我檢查零表示經過可選的結合直接轉化爲「像以前一樣?字符串「相同的錯誤仍然存​​在。我開始知道,迅速沒有相應的「空」。有沒有什麼黑客的價值是空的(空)在迅速?

+0

你可以直接檢查「你字符串「==」「 –

回答

1

只需更換您的

,並使用

guard let prevNotifCount = self.cmmn.getPreviousNotificationCount()  else{ 
       print("No previous notification value") 
       return 
     } 

無需檢查零,如果它會失敗,否則塊將被執行

+0

這解決了我的問題。轉換爲?字符串總是返回null ..我已經編輯您的帖子到解決我的問題的代碼 –

0
if let prevNotifCount = self.cmmn.getPreviousNotificationCount() as? String 
{ 
    self.cmmn.saveInDatabase("19", phoneNumber: "0", otp: "0") 
    print(self.cmmn.getPreviousNotificationCount()) 
} 
else 
{ 
    print("No previous notification value") 
} 

這是標準的Swift方法,稱爲optional binding。您解開安全的可選的,如果它不是零加入,如果讓檢查零狀態像這樣把它分配給一個局部變量

0

嘗試: -

if let NotifCount = self.cmmn,getPreviousNotificationCount() as? String 

{ 
    prevNotifCount = NotifCount 
} 

請試試這個,希望它可以幫助!

0

使用if let語句。

if let preNotifCount = self.cmmn.getPreviousNotofication { 
     //business logic 
} 

現在僅當preNotifCount不爲零時纔會執行業務邏輯。