Check whether an object is an NSArray or NSDictionary

前端 未结 4 617
慢半拍i
慢半拍i 2021-02-01 13:28

As per subject, how can I check whether an object is an NSArray or NSDictionary?

4条回答
  •  无人及你
    2021-02-01 13:44

    Consider the case when you're parsing data from a JSON or XML response. Depending on the parsing library you are using, you may not end up with NSArrays or NSDictionaries. Instead you may have __NSCFArray or __NSCFDictionary.

    In that case, the best way to check whether you have an array or a dictionary is to check whether it responds to a selector that only an array or dictionary would respond to:

    if([unknownObject respondsToSelector:@selector(lastObject)]){
    
    // You can treat unknownObject as an NSArray
    }else if([unknownObject respondsToSelector:@selector(allKeys)]){
    
    // You can treat unknown Object as an NSDictionary
    }
    

提交回复
热议问题