[swift-users] How to check the type of a concrete class that inherits from a generic class?
Glen Huang
heyhgl at gmail.com
Sat Oct 7 01:27:34 CDT 2017
Hi,
I defined some concrete classes inheriting from a generic class like this:
class Controller1: NSFetchedResultsController<NSManagedObject> {}
class Controller2: NSFetchedResultsController<NSManagedObject> {}
And I assign them a shared delegate, and in the delegate method:
func controllerWillChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>)
I want to test the concrete type of controller, doing things differently for Controller1 and Controller2.
But doing the following gives me a warning: Cast from 'NSFetchedResultsController<NSFetchRequestResult>' to unrelated type 'Controller1’ always fails
switch controller {
case is Controller1:
// ...
default:
break
}
I wonder what’s the correct way to check the concrete type?
Regards,
Glen
More information about the swift-users
mailing list