我有一个表格视图,其中包含从周一到周日的日期。我可以使用位掩码来表示选择/取消选择所有这些。
例如,如果我选择所有这些,我将使用二进制switch
或十进制127。我找到了一个枚举示例,但无法识别如何从枚举中获取整数,然后在需要时将该数字再次转换为选定日期。
我们说我选择了桌子上的所有日子,然后我离开那张桌子再次打开它。所以在我的数据中,我有127个代表我选择的所有日子(例如,它可以选择2或3天)。所以我想检查那些天被选中。但我只有一个小数。
最好的办法是什么?
如何撰写func markDaysAsSelctedWith(number: Int)
{
switch (number) {
case Days.Monday
case Days.Sunday
}
我想这应该是这样的:
M = 1,
Tu = 2,
W = 4,
Th = 8,
F = 16,
Sa = 32,
Su = 64
这是我的问题:如果我使用数字12表示周三和周四的选定日期:
var escapestring ='<table id="tblUserList"><tbody><tr><td style="padding: 10px;">some test'+"'"+' and "xyz"</td></tr></tbody></table>';
然后切换不起作用......
答案 0 :(得分:2)
对于每个表视图行(0 ... 6),检查相应的位是否相应 在它设置或未设置的位掩码中的位置,并选择或取消选择 因此排。例如:
func download(_ path: String, _ completionHandler: @escaping (Any?) -> ()) {
let stringURL = "https://slove.tulleb.com/uploads/6/6/0/2/66027561/2791411.jpg-1447979839.png"
print("Requesting \(stringURL)...")
_ = Alamofire.download(stringURL)
.responseData { response in
print(response)
if let data = response.result.value {
completionHandler(UIImage(data: data))
} else {
completionHandler(nil)
}
}
}
输出:
select row # 0 deselect row # 1 select row # 2 deselect row # 3 deselect row # 4 deselect row # 5 select row # 6
答案 1 :(得分:2)
在您的情况下,请考虑采用OptionSetType
。
声明符合OptionSetType
的结构:
(假设你还在使用Swift 2。)
struct Days: OptionSetType {
var rawValue: Int
init(rawValue: Int) {self.rawValue = rawValue}
static let Monday = Days(rawValue: 1<<0)
static let Tuesday = Days(rawValue: 1<<1)
static let Wednesday = Days(rawValue: 1<<2)
static let Thursday = Days(rawValue: 1<<3)
static let Friday = Days(rawValue: 1<<4)
static let Saturday = Days(rawValue: 1<<5)
static let Sunday = Days(rawValue: 1<<6)
}
你可以这样写:
func markDaysAsSelectedWith(days: Days)
{
if days.contains(.Monday) {
print("Monday marked")
}
if days.contains(.Tuesday) {
print("Tuesday marked")
}
if days.contains(.Wednesday) {
print("Wednesday marked")
}
if days.contains(.Thursday) {
print("Thursday marked")
}
if days.contains(.Friday) {
print("Friday marked")
}
if days.contains(.Saturday) {
print("Saturday marked")
}
if days.contains(.Sunday) {
print("Sunday marked")
}
}
并将其用作:
markDaysAsSelectedWith([.Monday,.Tuesday])
//Output:
//Monday marked
//Tuesday marked
let number = 12
let days = Days(rawValue: number)
markDaysAsSelectedWith(days)
//Output:
//Wednesday marked
//Thursday marked
(ADDITION)如何从选定日期获取号码
正如Martin R的评论中所述,您可以使用rawValue
属性检索基础rawValue:
let otherDays: Days = [.Wednesday,.Thursday]
print(otherDays.rawValue) //->12