您的位置:首页 > 移动开发 > Objective-C

Objective-C:Foundation框架-常用类-NSMutableDictionary

2015-12-24 15:37 337 查看
直接上代码吧:

#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一次
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: