ios - Swift3 错误 : Cannot assign value of type '()' to type '[customObject]?'

标签 ios swift swift3

我有一个包含 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/

相关文章:

ios - App Clip - 支持多个营业地点

ios - SiriKit Intent Handler 没有被调用

ios - 如何获取以前日期的 HealthKit 总步数

ios - Xcode 7.1 更新错误

ios - 如何在 iOS 上查找用户丢失的应用内购买?

ios - Github 上的 OBDII 蓝牙阅读器 iOS 应用程序?

ios - ARKit - SceneView 显示错误位置 3D 模型

swift - 在 macOS Big Sur 下使用交替行颜色的 NSTableView 的视觉故障

sockets - 如何通过 CFSocketNativeHandle 使用 CFStreamCreatePairWithSocket

Swift3 迁移问题