Subclassing NSMutableDictionary

前端 未结 3 1544
难免孤独
难免孤独 2021-02-07 22:42

I am trying to implement a subclass of NSMutableDictionary that returns nil instead of throwing a NSUndefinedKeyException when the key is not present in the Dictionary.

3条回答
  •  感情败类
    2021-02-07 23:14

    NSMutableDictionary Class Reference says:

    In a subclass, you must override both of its primitive methods:

    1. setObject:forKey:
    2. removeObjectForKey:

    You must also override the primitive methods of the NSDictionary class.


    NSDictionary Class Reference says:

    If you do need to subclass NSDictionary, you need to take into account that is represented by a Class cluster—there are therefore several primitive methods upon which the methods are conceptually based:

    1. count
    2. objectForKey:
    3. keyEnumerator
    4. initWithObjects:forKeys:count:

    In a subclass, you must override all these methods.

    NSDictionary’s other methods operate by invoking one or more of these primitives. The non-primitive methods provide convenient ways of accessing multiple entries at once.


    It seems that you need to override all these six methods to make your NSMutableDictionary subclass work perfect.

提交回复
热议问题