Я хочу создать словарь, в котором ключами может быть любой подкласс NSObject
, а значением является массив подкласса NSObject
.
Я пробовал:
class ABC: NSObject {
var a: Int? = 0
convenience init(a: Int) {
self.init()
self.a = a
}
}
class XYZ: NSObject {
var b: String? = "just checking"
var objOfABC: ABC?
convenience init(b: String, obj: ABC) {
self.init()
self.b = b
self.objOfABC = obj
}
}
let arr = [ XYZ(b: "str1", obj: ABC(a: 1)),
XYZ(b: "str2", obj: ABC(a: 2)),
XYZ(b: "str4", obj: ABC(a: 1)),
XYZ(b: "str7", obj: ABC(a: 3)),
XYZ(b: "str0", obj: ABC(a: 1)),
XYZ(b: "str9", obj: ABC(a: 2)),
]
var dictionary: [ABC: [XYZ]] = [:]
for obj in arr {
dictionary[obj.objOfABC ?? ABC()]?.append(obj)
}
for obj in dictionary {
print(obj.key.debugDescription)
print(obj.value.debugDescription)
}
The dictionary
ноль.
Может кто-нибудь указать мне, что я делаю неправильно?