Skip to content

Inheritence support #1

@AliSoftware

Description

@AliSoftware

If you observe a given keyPath in a class A, and observe the very same keyPath in a subclass B of the class A, the block set in class B will override the one in class A.

It won't be possible to call the superclass observer block when you override it in a subclass.

Note that the standard Apple KVO mechanism has the same issue

Possible Fix: associating to the keyPath not directly the blocks to execute but an NSMutableDictionary that holds the blocks for each class in the object's class hierarchy should solve the problem. When trying to call the block, we will search blocks by going bottom to top in the class hierarchy, thus calling the blocks associated with the current class, then its superclass if any, then its supersuperclass, and so on.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions