zoukankan      html  css  js  c++  java
  • Objective-C:Foundation框架-常用类-NSMutableDictionary

     直接上代码吧:

    #import <Foundation/Foundation.h>
    
    @interface Student : NSObject
    @property (nonatomic, retain) NSString *name;
    
    + (id)studentWithName:(NSString *)name;
    @end
    
    #import "Student.h"
    
    @implementation Student
    
    + (id)studentWithName:(NSString *)name {
        Student *stu = [[Student alloc] init];
        stu.name = name;
        return [stu autorelease];
    }
    
    - (void)dealloc {
        NSLog(@"%@被销毁了", _name);
        // 释放name
        [_name release];
        [super dealloc];
    }
    @end
    #import <Foundation/Foundation.h>
    #import "Student.h"
    
    #pragma mark 可变字典的使用
    void dictUse() {
        // 创建一个空的字典
        NSMutableDictionary *dict = [NSMutableDictionary dictionary];
        Student *stu1 = [Student studentWithName:@"stu1"];
        Student *stu2= [Student studentWithName:@"stu2"];
        
        // 添加元素
        // stu1的计数器会+1
        [dict setObject:stu1 forKey:@"k1"];
        NSLog(@"stu1:%zi", [stu1 retainCount]);
        
        // 添加其他字典other到当前字典dict中
        NSDictionary *other = [NSDictionary dictionaryWithObject:@"v2" forKey:@"k2"];
        [dict addEntriesFromDictionary:other];
        
        // 删除所有的键值对
        // [dict removeAllObjects];
        
        // 删除k1对应的元素stu1,stu1会做一次release操作
        [dict removeObjectForKey:@"k1"];
        NSLog(@"stu1:%zi", [stu1 retainCount]);
        
        // 删除多个key对应的value
        // [dict removeObjectsForKeys:[NSArray arrayWithObject:@"k1"]];
        
        // 字典被销毁时,内部的所有key和value计数器都会-1,也就是说stu1会release一次
    }
  • 相关阅读:
    HDOJ2553 N皇后问题
    NYOJ284 坦克大战 BFS/优先队列
    NYOJ14 会场安排问题 贪心
    POJ1664 放苹果
    NYOJ119 士兵杀敌(三) RMQ
    POJ3264 Balanced Lineup RMQ/线段树
    POJ1127 Jack Straws
    HDOJ1128 Self Numbers
    水晶报表CrystalReports很强大也很简单!
    PetShop项目学习笔记(三)
  • 原文地址:https://www.cnblogs.com/yif1991/p/5068224.html
Copyright © 2011-2022 走看看