не под стендом, почему я должен использовать try
и catch
с назначениями как этот: попытаться поймать быстрые 2,0
Кроме того, если я положить вещи в do ... while
блок я хотел бы получить это:
не под стендом, почему я должен использовать try
и catch
с назначениями как этот: попытаться поймать быстрые 2,0
Кроме того, если я положить вещи в do ... while
блок я хотел бы получить это:
Вам нужно просто использовать сделать/поймать структуру, когда вы хотите обработать ошибку. Но если вы уверены, что ваш код не даст вам какой-либо ошибки, вы можете отменить распространение ошибки, используя !
let habitsOfDay = try! Realm().objects(Habit).filter("durationByDays_days contains %@", daySelected)
Вы можете найти больше об обработке ошибки в яблочной документации: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html
Если вы не хотите, чтобы поймать возможные исключения следует отметить, что функция может бросить их к абоненту. Вы сделали это во втором примере (ключевое слово throws
), но не в первом.
Функция должна возвращать Results<Habit>
, но это не так. У вас есть return habitsOfDay
в первом примере, но не во втором.
Попробуйте использовать инструкцию охраны.
guard let habitsOfDay = Realm().objects(Habit).filter("durationByDays_days contains %@", daySelected) else {return}
Не может ответить на первый блок, но для второго вашей функция требует возврата, который вы должны предусмотреть как попытки а catch – Glenn
вещь 'habitsOfDay' является локальной для' do', поэтому я не могу получить к ней доступ за пределами 'do' – Liumx31