2017-02-20 13 views
0

Я работаю над проектом, который использует как быструю цель c. Член группы передо мной написал этот код в объективе C, с которым я не знаком. Существует проблема, заключающаяся в том, что большая часть части, связанной с хранением и извлечением значения из Sqlite, находится в obj C. Это было сделано в общем классе, чтобы избежать выкупа кода. Однако, если я использую swift для получения значения через этот файл obj C, возникает проблема. Если в этой заданной строке нет значения, она возвращает «null». enter image description hereПроверка нулевого значения (не nil или NSnull) в swift всегда возвращает nil?

Update: Проверено для дополнительного связывания, как сказал Энтони Рейфел Same error persists.

Даже если я проверить ноль непосредственно перед преобразованием «, как? String 'та же ошибка сохраняется. Я узнал, что нет никакого эквивалента «null» в быстром. Есть ли какой-либо взлом для значения пустым (null) в swift?

+0

вы можете непосредственно проверить, что «Ваш string "==" " –

ответ

1

Просто замените ваш

и не использовать

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

нет необходимости проверять ноль, если она не будет выполнена, иначе блок будет выполнен

+0

Это решило мою проблему. преобразование в as? Строка всегда возвращает значение 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

Try, добавив, если позволить, чтобы проверить состояние ноль, как это: -

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

{ 
    prevNotifCount = NotifCount 
} 

Пожалуйста, попробуйте это, надеюсь, что это помогает!

0

Использовать, если вывести инструкцию.

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

Теперь бизнес-логика будет выполнена только в том случае, если preNotifCount не является нулевым.

 Смежные вопросы

  • Нет связанных вопросов^_^