我正在制作一个基本的计划风格的应用程序,它从用户那里获取日期输入,然后在表格中表示它。我已经创建了我的数据模型,并且我正在尝试添加一些示例数据来测试模型。
这是我的数据模型:
import UIKit
class Data {
var name: String
var time1: NSDate
var time2: NSDate
var time3: NSDate
var time4: NSDate
var time5: NSDate
init?(name: String, time1: NSDate, time2: NSDate, time3: NSDate, time4: NSDate, time5: NSDate) {
self.name = name
self.time1 = time1
self.time2 = time2
self.time3 = time3
self.time4 = time4
self.time5 = time5
if name.isEmpty {
return nil
}
}
}
在我的表视图控制器内部,我正在尝试创建示例数据。
import UIKit
class MedicineTableViewController: UITableViewController {
//MARK Properties
var data = [Data]()
override func viewDidLoad() {
super.viewDidLoad()
}
func loadSampleData() {
let data1 = Data(name: "Example", time1: NSDate(dateString: "08:00 a"), time2: NSDate(dateString: "10:00 a"), time3: NSDate(dateString: "02:00 p"), time4: NSDate(dateString: "06:00 p"), time5: NSDate(dateString: "10:00 p"))
Data += [data1]
}
所以首先我开始尝试以格式" HH:MM"的形式声明我存储的时间。但后来这导致Xcode像整数那样存储我的值,然后我在网上做了一些研究并找到了NSDate
(dateString)并且认为我可以像这样定义我的时间但是这也是返回错误
"找不到类型' NSDate'的初始化程序。接受类型'(dateString:String)''"
的参数列表
有人可以帮我解释一下这里出错了吗?我只是错误地格式化NSDate
或者我的代码是否存在潜在问题?
答案 0 :(得分:0)
尝试更改此行:
var data = [Data]()
进入这一行:
var data = [NSDate]()
并删除name
字符串,我不确定您是否可以存储字符串& NSDate在里面。
告诉我你的结果
答案 1 :(得分:0)
您尝试做的最好是使用NSDateFormatter。
您应该创建日期格式化程序,然后使用datefromString
方法创建NSDate。我不知道NSDate(dateString: "<some string")
初始值设定项。如果你在一些示例代码中看到这个,有人为此在NSDate上创建了一个扩展,这是可能的。
这样的事情应该有助于获得你的时间价值:
var formatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
let time1 = dateFormatter.dateFromString("August 6, 2015")
您可以创建数据对象。
此外,此行没有意义Data += [data1]
您正尝试在此处向该类型添加新元素。相反,您应该使用data.append(data1)