2016-12-05 20 views
0

我有一个文本字段,在视图 - 控制7个按键如何分配工作日到按钮?

@IBOutlet weak var courseDesc: UITextField! 

@IBOutlet weak var sundayButton: UIButton! 
@IBOutlet weak var mondayButton: UIButton! 
@IBOutlet weak var tuesdayButton: UIButton! 
@IBOutlet weak var wednedayButton: UIButton! 
@IBOutlet weak var thursdayButton: UIButton! 
@IBOutlet weak var fridayButton: UIButton! 
@IBOutlet weak var saturdayButton: UIButton! 

如何将这些7工作日分配低于上述7个按键,例如,如果用户点击sundayButton,应该当用户保存它被指定为Sunday

func getWeekDay() -> [String] { 
    let calendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)! 
    calendar.locale = NSLocale.current as Locale 
    return calendar.weekdaySymbols 
} 

var assignDay = getWeekDay() 

let sunday = assignDay[0] 
let monday = assignDay[1] 
let tuesday = assignDay[2] 
let wednesday = assignDay[3] 
let thursday = assignDay[4] 
let friday = assignDay[5] 
let saturday = assignDay[6] 
+0

您可能需要将其分解为更小的部分。我不明白你想要做什么。我们将更有可能帮助您解决小型个人编码任务,而不是一个大概念。 – Frankie

+0

@Frankie,请参阅编辑问题 – Coder221

+0

这与核心数据有什么关系? – matt

回答

3

我已经多次从你这里看到过这个问题,而且你的表述还不是很好。但让我们看看我能否提供帮助。

您试图在每个按钮中存储一个字符串,以便您可以从barbuttonitem中获取该字符串。

你可以用几种方法做到这一点。

一:你可以扩展的UIBarButtonItem,给它像

var day: String? 

属性,然后设置该属性为每个按钮和抢你的保存功能价值(同时考虑它是可选的)。可能不想这样做,因为你扩展了所有barbutton项目,也许你不想要那样做。

二:你可以做一个小词典:

let buttonDays: [UIBarButtonItem: String] = [SundayButton: "Sun",...] 

,然后保存就可以通过访问该字典,像这样只是抓住的一天。 (所以,如果我们解开它,它是一个可选)

if let day = buttonDays[sender] {...} 

三:你可以标记分配给每个按钮,如上使用该标记在一本字典。

sundayButton.tag = 0 
mondayButton.tag = 1 
.... 
let dayForTag : [Int: String] = [0: "Sun",...] 
//then in save function 
let day = dayForTag[sender.tag] 

你不需要使用上面的字典,只是一个数组,因为它是零索引。

但最后,你需要问自己。 为什么你打扰在数据模型中存储这些字符串?你的模型并没有给一个该死的名字是什么。只有一个人知道这一点。而且你已经打算存储周日的价值了。当您回到应用程序的控制器层时,该值可以直接转换为一周中的某一天。字符串比16字节的int大得多,并且通过存储两者来创建模型中的冗余。

编辑:将应用程序层转换为控制器。 OSI模型在我心中。哎呀。

在这种情况下,您需要做的是为每个按钮分配一个标签,0代表星期日,1代表星期一等。然后将该标签存储在您的数据库中。当您需要访问特定日期的任务时,请使用当天的整数表示进行搜索,而不是字符串。

编辑:我只记得我认为星期日实际上是DateDay中的Date()对象,所以你必须考虑这一点。我认为。自从我使用它以来一段时间了。

+0

我同意你的结论。 –

+0

欣赏您对我的问题的理解。现在我完全明白了:) – Coder221