我有一個表格視圖,7行星期一,星期二,......,星期天。更新基於Web服務實現的行標籤swift
({
appointments = (
{
numApts = 1;
scheduleDate = "2015-11-02";
},
{
numApts = 2;
scheduleDate = "2015-11-04";
}
);
})
所以我通過JSON響應試圖循環,如果在收到的JSON的日期相匹配更新我們平日的標籤:我的應用程序從一個Web服務,這是格式接收一個JSON。
不知道如何實現這一點。我需要模特班嗎?喜歡的東西:
import UIKit
class CurrentRosterModel {
var numApts : String?
var scheduleDate : String?
init(json : NSDictionary){
self.numApts = json["numApts"] as? String
self.scheduleDate = json["scheduleDate"] as? String
}
}
我今天是想用一個函數來更新行中的文本,像這樣的,但我沒有進入決賽,如果讓條件接入小區,以便更新標籤:
let weekDateDict = ["Monday" : mon, "Tuesday" : tues, "Wednesday" : wedns, "Thursday" : thurs, "Friday" : fri, "Saturday" : sat, "Sunday" : sun]
//where vars mon = "2015-11-02", tues = "2015-11-03" etc.
//aptsArray is hard coded for now but will need to come from a web service response later
let aptsArray : [Dictionary<String, String>] = [
[
"numApts" : "1",
"scheduleDate" : "2015-11-02"
],
[
"numApts" : "2",
"scheduleDate" : "2015-11-04"
]];
for (weekDay, weekDate) in weekDateDict {
if aptsArray.contains({ $0.values.contains(weekDate)}) {
print("Matched with weekDate is \(weekDate) and weekDay is \(weekDay)")
//getting this condition twice as expected
let ourIndexPath : NSIndexPath?
switch weekDay {
case "Monday":
ourIndexPath = NSIndexPath(forRow: 0, inSection : 0)
//print("Monday label update")
case "Tuesday":
ourIndexPath = NSIndexPath(forRow: 1, inSection : 0)
//print("Tuesday label update")
case "Wednesday":
ourIndexPath = NSIndexPath(forRow: 2, inSection : 0)
//print("Wednesday label update")
case "Thursday":
ourIndexPath = NSIndexPath(forRow: 3, inSection : 0)
//print("Thursday label update")
case "Friday":
ourIndexPath = NSIndexPath(forRow: 4, inSection : 0)
//print("Friday label update")
case "Saturday":
ourIndexPath = NSIndexPath(forRow: 5, inSection : 0)
//print("Saturday label update")
case "Sunday":
ourIndexPath = NSIndexPath(forRow: 6, inSection : 0)
//print("Sunday label update")
default :
ourIndexPath = NSIndexPath(forRow: 7, inSection : 0)
//print("swicth not satisfied")
}
if let cell = weekTableView.cellForRowAtIndexPath(ourIndexPath!) as? WeekDayCell{
print("got in here")//not getting in here
cell.numAptsLbl.text = aptsArray[0]["numApts"]!
weekTableView.beginUpdates()
weekTableView.reloadRowsAtIndexPaths([ourIndexPath!], withRowAnimation: UITableViewRowAnimation.Automatic)
weekTableView.endUpdates()
}
}
我的tableview方法如下所示:
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 7
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = weekTableView.dequeueReusableCellWithIdentifier("WeekDayCell", forIndexPath: indexPath) as! WeekDayCell
cell.dayLbl?.text = weekArray[indexPath.row]
cell.numAptsLbl?.text = "0"
//indexPath.row.description
//print("indexpath in tableview is \(indexPath)")
return cell
}