ios之深拷贝

来源:互联网 发布:淘宝店铺刷销量平台 编辑:程序博客网 时间:2024/05/16 05:01

M

.h文件

#import <Foundation/Foundation.h>


@interface NSDictionary(DeepMutableCopy)
-(NSMutableDictionary *)mutableDeepCopy;

@end

.m文件

#import "NSDictionary-DeepMutableCopy.h"

@implementation NSDictionary(DeepMutableCopy)
-(NSMutableDictionary *)mutableDeepCopy
{
    NSMutableDictionary *ret = [[NSMutableDictionary alloc] initWithCapacity:[self count]];
    NSArray *keys = [self allKeys];
    for (id key in keys)
    {
        id oneValue = [self valueForKey:key];
        id oneCopy = nil;
        
        if ([oneValue respondsToSelector:@selector(mutableDeepCopy)])
            oneCopy = [oneValue mutableDeepCopy];
        else if ([oneValue respondsToSelector:@selector(mutableCopy)])
            oneCopy = [oneValue mutableCopy];
        if (oneCopy == nil)
            oneCopy = [oneValue copy];
        [ret setValue:oneCopy forKey:key];
    }
    return ret;
}
@end
0 0
原创粉丝点击