2016-12-05 35 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