Если вы используете эту функцию для генерации версии HTML5 datepicker для браузеров, формат даты должен быть yyyy-MM-dd
(формат ISO). Используя TextBoxFor()
, он должен быть
@Html.TextBoxFor(m => m.InitialDate, "{0:yyyy-MM-dd}", new { @class = "form-control", type = "date" })
. В качестве альтернативы добавьте следующие атрибуты к свойству
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> InitialDate { get; set; }
и в представлении используйте
@Html.EditorFor(m => m.InitialDate)
Обратите внимание, что это добавляет атрибут type="date"
UIKit не является поточно-ориентированным. Пользовательский интерфейс должен обновляться только из основного потока:
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
}
Обновление . В Swift 3 и позже используйте:
DispatchQueue.main.async {
self.tableView.reloadData()
}
Вы также можете перезагрузить UITableView следующим образом
self.tblMainTable.performSelectorOnMainThread(Selector("reloadData"), withObject: nil, waitUntilDone: true)
В Swift 3 используйте
DispatchQueue.main.async {
self.tableView.reloadData()
}
SWIFT 3:
OperationQueue.main.addOperation ({
self.tableView.reloadData()
})
Вы также можете обновить основной поток, используя NSOperationQueue.mainQueue()
. Для многопоточности NSOperationQueue - отличный инструмент.
Один из способов это можно записать:
NSOperationQueue.mainQueue().addOperationWithBlock({
self.tableView.reloadData()
})
Обновление : DispatchQueue - путь для этого