美文网首页
各种集合(NSDictionary, NSMapTable, .

各种集合(NSDictionary, NSMapTable, .

作者: 李庶庶 | 来源:发表于2019-04-16 11:01 被阅读0次

    1.NSDictionary

    NSDictionary是key->value的映射。
    NSDictionary中存储的object位置是由key来索引的。
    由于object存储在特定位置,NSDictionary要求key的值不能变,为了保证这一点NSDictionary会copy值到自己的私有空间。
    NSDictionary只接受oc对象作为key,key必须实现NSCopying协议。
    key应当是小且高效的,复制的时候不应对内存或cpu形成压力。
    综上,NSDictionary适合的key是值类型的,不适合作为模型类对象到对象的映射。

    NSNumber *num = @(1);
    NSDictionary *dic = @{num : [Person sharedInstance]};
    num = @(2);
    id obj = [dic objectForKey:num];
    id obj1 = [dic objectForKey:@(1)];
    

    (lldb) po obj
    nil
    (lldb) po obj1
    <Person: 0x600002c735f0>

    相关文章

      网友评论

          本文标题:各种集合(NSDictionary, NSMapTable, .

          本文链接:https://www.haomeiwen.com/subject/ocivwqtx.html