如何減少這種(下面)情況下if語句的數量?我知道開關語句,但無法想象這將如何幫助在這種情況下。減少嵌套If-語句的數量
這裏發生的事情如下:
- 第一IF安全檢查存儲在NSDefault日期,可如果日期存在(真)或可能不存在
- ,它會檢查日期在「現在」之前
- 如果日期在「now」(真)之前,它安全地檢查NSDefault中的開/關用戶偏好,這也可能不存在
- 如果確實存在,如果它不等於關閉
最後,如果#4是真實的,則該函數被稱爲
//Queue up more quote notifications? if let notif_EndDate = (userPref_NSDefault.objectForKey("notification_EndDate")) as? NSDate { if notif_EndDate.isLessThanDate(self.now) { if let quoteNotif_Pref = (userPref_NSDefault.stringForKey("WeeklyQuote_Pref")) { if quoteNotif_Pref != "Off" { quoteNotifications() } else { print("Use has set 'Weekly Quotes' to 'Off'") } } else { quoteNotifications() } } } else { quoteNotifications() }
這是sooo .... swifty。仍然在辯論是否對我來說太聰明瞭。 :) – Eiko
在你的第一個代碼示例(開關)中,如果兩個NSDefault對象都不存在,會發生什麼?這是否會導致錯誤,或者它會運行「default:」? –
默認運行,因爲模式不匹配(日期不是NSDate或weeklyPref不是字符串) – nielsbot