Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift3错误:无法分配类型为';()';输入';[客户对象]?';_Ios_Swift_Swift3 - Fatal编程技术网

Ios Swift3错误:无法分配类型为';()';输入';[客户对象]?';

Ios Swift3错误:无法分配类型为';()';输入';[客户对象]?';,ios,swift,swift3,Ios,Swift,Swift3,我有一个自定义类,包含如下2个属性 class CustomObjectClass: NSObject { override init() { //AppointmentsDetails } var customName:String? var customDate:Date? } 我正在尝试使用类似字典的date:[CustomObjectClass]按日期创建自定义类的组对象 在尝试遍历对象并添加到字典时,我得到一个错误:无法将类型()的

我有一个自定义类,包含如下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]]()
}
有人能为这个问题提出解决方案吗
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)
    }
}

斯威夫特4 得益于新的字典API,您可以简单地使用初始值设定项:

let classesByDate = Dictionary(grouping: customlist) { $0.customDate! }

如果你想添加一个结果,你需要先添加元素,然后将数组添加到字典中:
tempCustList.append(obj)
dateDict[obj.customDate!]=tempCustList
@nathan-效果很好。谢谢,事情终于解决了。你最终使用的是Swift 3还是Swift 4?