[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:40:13 CDT 2017
NSFetchedResultsController is the class from Core Data:
https://developer.apple.com/documentation/coredata/nsfetchedresultscontroller
> On 7 Oct 2017, at 2:38 PM, Slava Pestov <spestov at apple.com> wrote:
>
> Can you post a self-contained example, including the declaration of NSFetchedResultsController?
>
> Slava
>
>> On Oct 6, 2017, at 11:28 PM, Glen Huang via swift-users <swift-users at swift.org> wrote:
>>
>> 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
>> _______________________________________________
>> swift-users mailing list
>> swift-users at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-users
>
More information about the swift-users
mailing list