在 Swift 中处理商店营业时间的最佳方式
Best way to work with store hours in Swift
我正在 Swift 中构建一个应用程序,它会从 Firebase 占用商店的营业时间,并希望在我的代码中将其表示为类似“monday.close”的内容以获取 02:30.做这样的事情最好的方法是什么?下图是 Firebase 中的数据。
init(dictionary: [String: Any]) {
//initialize food item here
self.name = dictionary["name"] as? String ?? ""
self.address = dictionary["address"] as? String ?? ""
self.restaurantLogo = UIImage(named: "")
self.menuItems = dictionary["menuItems"] as? [Food] ?? []
self.deliverUberEats = dictionary["uberEatsLink"] as? String ?? ""
self.deliverDoorDash = dictionary["doordashLink"] as? String ?? ""
self.deliverGrubhub = dictionary["grubhubLink"] as? String ?? ""
self.restaurantID = ""
self.priceRange = dictionary["price"] as? Int ?? 0
self.hoursOpen = dictionary["hours"] as? [String : [String: String]]
}
struct RestaurantHours {
var MonOpen: Date?
var MonClose: Date?
}
我看到你已经有一个字典来存储 Firebase 的开放时间,叫做 hoursOpen
。
不使用像“monday.open”这样的符号,您有一个选择是将该字典作为您的数据源并使用函数检索小时数,如下所示:
func restaurantHours(day: String, when: String) -> String {
let safeWhen = hoursOpen[day.lowercased()] ?? ["open": "closed"]
let safeTime = safeWhen[when.lowercased()] ?? "closed"
return safeTime
}
以下是您的使用方法(但更正 Firebase 或解析您的数据以保持所有工作日小写!):
Text(restaurantHours(day: "Monday", when: "open")) // 02.30
Text(restaurantHours(day: "MondAy", when: "close")) // 22.00
Text(restaurantHours(day: "Tuesday", when: "open")) // 02.30
Text(restaurantHours(day: "frIDAy", when: "clOSe")) // closed
我正在 Swift 中构建一个应用程序,它会从 Firebase 占用商店的营业时间,并希望在我的代码中将其表示为类似“monday.close”的内容以获取 02:30.做这样的事情最好的方法是什么?下图是 Firebase 中的数据。
init(dictionary: [String: Any]) {
//initialize food item here
self.name = dictionary["name"] as? String ?? ""
self.address = dictionary["address"] as? String ?? ""
self.restaurantLogo = UIImage(named: "")
self.menuItems = dictionary["menuItems"] as? [Food] ?? []
self.deliverUberEats = dictionary["uberEatsLink"] as? String ?? ""
self.deliverDoorDash = dictionary["doordashLink"] as? String ?? ""
self.deliverGrubhub = dictionary["grubhubLink"] as? String ?? ""
self.restaurantID = ""
self.priceRange = dictionary["price"] as? Int ?? 0
self.hoursOpen = dictionary["hours"] as? [String : [String: String]]
}
struct RestaurantHours {
var MonOpen: Date?
var MonClose: Date?
}
我看到你已经有一个字典来存储 Firebase 的开放时间,叫做 hoursOpen
。
不使用像“monday.open”这样的符号,您有一个选择是将该字典作为您的数据源并使用函数检索小时数,如下所示:
func restaurantHours(day: String, when: String) -> String {
let safeWhen = hoursOpen[day.lowercased()] ?? ["open": "closed"]
let safeTime = safeWhen[when.lowercased()] ?? "closed"
return safeTime
}
以下是您的使用方法(但更正 Firebase 或解析您的数据以保持所有工作日小写!):
Text(restaurantHours(day: "Monday", when: "open")) // 02.30
Text(restaurantHours(day: "MondAy", when: "close")) // 22.00
Text(restaurantHours(day: "Tuesday", when: "open")) // 02.30
Text(restaurantHours(day: "frIDAy", when: "clOSe")) // closed