如何在TableView中显示数字/整数?

时间:2014-12-18 00:03:57

标签: uitableview swift ios8

我正在尝试构建一个简单的应用程序,用户可以从日期选择器(生日或任何事件)输入日期,然后代码将从用户提供应用程序之日起减去今天的日期,以获取天数的差异,然后显示表格视图中剩余天数的倒计时,以及事件的名称。我有2个View Controllers,主要是TableViewController,然后是AddViewController。我已经想出如何在几天内获得差异,我的表视图已经设置好并且所有代码都运行得很好。我只是在显示表视图中剩余的天数时遇到问题,因为它们是整数。我很乐意从更有经验的开发人员那里得到一些帮助,因为我对iOS编程比较陌生。所以没有进一步的到期,这是我的代码:

@IBAction func addButtonTapped(sender: AnyObject) {

    var chosen: NSDate = self.datePicker.date
    var today: NSDate = NSDate()
    let calendar = NSCalendar.currentCalendar()
    let components = calendar.components(.DayCalendarUnit, fromDate: today, toDate: chosen, options: nil)
    let secondsInADay = ((60 * 60) * 24)
    let daysLeft = (components.hashValue / secondsInADay)

    var userDefaults: NSUserDefaults = NSUserDefaults()
    var itemList: NSMutableArray? = userDefaults.objectForKey("itemList") as? NSMutableArray

    var dataSet: NSMutableDictionary = NSMutableDictionary()
    dataset.setObject(eventTextField.text, forKey: "itemEventName")
    dataSet.setObject(datePicker.date, forKey: "itemEventDate")
    dataSet.setObject(daysLeft, forKey: "itemDaysLeft")

    if ((itemList) != nil) { 

        var newMutableList: NSMutableArray = NSMutableArray() 

        for dict: AnyObject in itemList! {

            newMutableList.addObject(dict as NSDictionary)

        }

        userDefaults.removeObjectForKey("itemList") 
        newMutableList.addObject(dataSet)
        userDefaults.setObject(newMutableList, forKey: "itemList")

    } else {
        userDefaults.removeObjectForKey("itemList")
        itemList = NSMutableArray()
        itemList!.addObject(dataSet)
        userDefaults.setObject(itemList, forKey: "itemList")

    }

    userDefaults.synchronize()
    self.navigationController?.popToRootViewControllerAnimated(true)

}

以上是我的addViewController中的代码,用户从文本字段输入名称,并从日期选择器输入日期。下面是我的tableViewController中代码的一部分。基本上我希望Int daysLeft显示在单元格中。

    var toDoItems: NSMutableArray = NSMutableArray()

override func viewDidAppear(animated: Bool) {
    var userDefaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()

    var itemListFromUserDefaults: NSMutableArray? = userDefaults.objectForKey("itemList") as? NSMutableArray

    if ((itemListFromUserDefaults) != nil) {
        toDoItems = itemListFromUserDefaults!
    }
    self.tableView.reloadData()
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath:       NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell

    var toDoItem: NSDictionary = toDoItems.objectAtIndex(indexPath.row) as NSDictionary
    cell.textLabel?.text = toDoItem.objectForKey("itemDaysLeft") as? String 

    return cell
}

1 个答案:

答案 0 :(得分:0)

在这一行上加上一个断点:var toDoItem: NSDictionary = toDoItems.objectAtIndex(indexPath.row) as NSDictionary来查看toDoItemContains是什么,只是为了验证它实际上是你所期望的。但我认为以下代码可能有所帮助。

而不是: cell.textLabel?.text = toDoItem.objectForKey("itemDaysLeft") as? String

尝试:

cell.textLabel?.text = NSString(format:"%@", toDoItem.objectForKey("itemDaysLeft")) as String