我有一个包含 2 个属性的自定义类,如下所示
class CustomObjectClass: NSObject {
override init() {
//AppointmentsDetails
}
var customName:String?
var customDate:Date?
}
我尝试使用像 Date:[CustomObjectClass] 这样的字典按日期创建自定义类的组对象
尝试遍历对象并添加到字典时出现错误:无法将类型 ()
的值分配给类型 [CustomObjectClass]?
代码如下
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewWillAppear(_ animated: Bool) {
var tempCustObj = CustomObjectClass()
var tempCustList = [CustomObjectClass]()
for obj in customlist{
dateDict[obj.customDate!] = tempCustList.append(obj)
//error : Cannot assign value of type '()' to type '[CustomObjectClass]?'
}
}
var custObj = CustomObjectClass()
var customlist = [CustomObjectClass]()
var dateDict = [Date:[CustomObjectClass]]()
}
有人能提出解决方案吗
最佳答案
swift 3
tempCustList.append(obj)
返回 Void ("nothing") 所以你不能将它添加到字典中
如果你想添加obj
,首先你需要检查是否有一个数组(否则创建一个新的),将元素附加到数组最后设置值字典。
for obj in customlist {
if classesByDate[obj.customDate!] == nil {
classesByDate[obj.customDate!] = [obj]
} else {
classesByDate[obj.customDate!]!.append(obj)
}
}
swift 4
多亏了新的 Dictionary API,您可以简单地使用一个初始化器:
let classesByDate = Dictionary(grouping: customlist) { $0.customDate! }
关于ios - Swift3 错误 : Cannot assign value of type '()' to type '[customObject]?' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45289666/