Как вы получаете / устанавливаете className1 и className2? Должно работать так:
let object = Object()
deleteObjects(id: "1234", obj1: object, obj2: object)
На самом деле, вашему deleteObjects
не нужно ничего знать о реальных объектах. Могли бы:
func deleteObjects<T: Object,T2: Object>(id: String, obj1: T.Type, obj2: T2.Type) {
try! realm.write {
realm.delete(realm.objects(T2.self).filter("set_id=%@", id))
realm.delete(realm.objects(T.self).filter("id=%@", id))
}
}
И позвонить:
deleteObjects(id: "1234", obj1: Object.self, obj2: Object.self)
Или более удобным было бы:
func deleteObjectsWith(id: String, withTypes types: [Object.Type]) {
try! realm.write {
types.forEach { objectType in
let objects = realm.objects(objectType).filter("set_id=%@", id)
realm.delete(objects)
}
}
}
И позвонить:
deleteObjectsWith(id: "1234", withTypes: [Object.self, Object.self])