//
// MyDictionary.h
// 1117homework
//
// Created by neuedu on 15/11/18.
// Copyright © 2015年 neuedu. All rights reserved.
//
#import <Foundation/Foundation.h>
// 添加键值对: [d1 setObject:@60 forKey:@"score"];
// 删除键值对: [d1 removeObjectForKey:@"name"];
// 检索键值对: [d1 objectForKey:key]
@interface MyDictionary : NSObject
@property (nonatomic,strong)NSMutableArray* arr;
- (void)setMyObject:(id)obj forKey:(id)aKey;
- (void)removeObjectForKey:(id)aKey;
- (id)objectForKey:(id)aKey;
- (NSUInteger)count;
- (instancetype)init;
- (NSString*)description;
@end
// MyDictionary.m
// 1117homework
//
// Created by neuedu on 15/11/18.
// Copyright © 2015年 neuedu. All rights reserved.
//
#import "MyDictionary.h"
@implementation MyDictionary
- (void)setMyObject:(id)obj forKey:(id)aKey
{
NSString* key = nil;
for (int i=0; i<_arr.count; i+=2) {
key = [_arr objectAtIndex:i];
int ret = [aKey compare:key options:NSLiteralSearch];
if ( ret == NSOrderedAscending) {// aKey < key
[_arr insertObject:aKey atIndex:i];
[_arr insertObject:obj atIndex:i+1];
return;
}
else if(ret == NSOrderedSame){// aKey == key
[_arr replaceObjectAtIndex:i+1 withObject:obj];
return;
}
}
[_arr addObject:aKey];
[_arr addObject:obj];
return;
}
- (void)removeObjectForKey:(id)aKey
{
NSString* key = nil;
for (int i=0; i<_arr.count; i+=2) {
key = [_arr objectAtIndex:i];
if([aKey compare:key options:NSLiteralSearch] == NSOrderedSame){// aKey == key
[_arr removeObjectAtIndex:i];// remove key
[_arr removeObjectAtIndex:i];// remove value
return;
}
}
}
- (id)objectForKey:(id)aKey
{
NSString* key = nil;
for (int i=0; i<_arr.count; i+=2) {
key = [_arr objectAtIndex:i];
if([aKey compare:key options:NSLiteralSearch] == NSOrderedSame){// aKey == key
return [_arr objectAtIndex:i+1];
}
}
return nil;
}
- (instancetype)init
{
if (self = [super init]) {
_arr = [[NSMutableArray alloc]init];
}
return self;
}
- (NSUInteger)count
{
return _arr.count/2;
}
- (NSString *)description
{
NSString* str = @"";
for (int i=0; i<_arr.count; i+=2) {
id key = [_arr objectAtIndex:i];
id obj = [_arr objectAtIndex:i+1];
NSString* kv = [NSString stringWithFormat:@"%@=%@\n",key,obj];
str = [str stringByAppendingString:kv];
}
return str;
}
@end
oc利用NSMutableArray模仿Dictionary
原文:http://www.cnblogs.com/muscle/p/4979511.html