2017-02-20 6 views
0

私は、迅速かつ客観的な両方を使用するプロジェクトに取り組んでいます。私の前のチームメンバーは、私が慣れていない客観的なCでこのコードを書いています。 Sqliteからの値の格納と取り出しを含む部分のほとんどがobj Cにあるという問題があります。これは、コードの再利用を避けるために共通のクラスで行われています。しかし、私はそのobjのCファイルを介して値を取得するために迅速に使用する場合、問題が発生します。指定された行に値がない場合は、「null」を返します。 enter image description hereswiftのヌル値(nilまたはNSnullではない)をチェックすると常にnilが返されますか?

アップデート:私はのように「に変換する前に、直接ゼロをチェックしている場合でもアントニーRaphel Same error persists.

で言ったように、オプションの結合のためのチェック?文字列 'は同じエラーが続きます。私は、迅速に「null」に相当するものがないことを知りました。値にハックはありますか?迅速に空(null)ですか?

+0

実行されます、あなたは直接あなた」というを確認することができます文字列 "==" " –

答えて

1

ちょうどあなたの

を交換し、

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

それが失敗した場合はnilをチェックする必要はありませんを使用し、それ以外のブロックは

+0

これは私の問題を解決しました。として変換? Stringは常に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") 
} 

これはoptional bindingと呼ばれる標準的なスウィフトアプローチです。あなたは安全に、オプションのラップを解除し、そうでない場合はnilを次のようにゼロの状態をチェックするために許可すれば追加することにより、ローカル変数

0

しようとすることを割り当てる: -

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

{ 
    prevNotifCount = NotifCount 
} 

これを試してみてください、それが役に立てば幸い!

0

let文の場合に使用します。

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

preNotifCountがnilでない場合は今のビジネスロジックのみ実行されます。

関連する問題