Objective-C实现一个基于数组下标[index]和字典[@"key"]的访问模式
来源:互联网 发布:java excel预览 编辑:程序博客网 时间:2024/06/11 04:13
//// MyArray.h// 001-自己实现数组下标////#import <Foundation/Foundation.h>@interface MyArray : NSObject{ @private NSMutableArray * mArray;}- (void)setObject:(id)anObject atIndexedSubscript:(NSUInteger)index;- (id)objectAtIndexedSubscript:(NSUInteger)idx;@end
//// MyArray.m// 001-自己实现数组下标////#import "MyArray.h"@implementation MyArray- (instancetype)init { self = [super init]; if (self) { self->mArray = [[NSMutableArray alloc] init]; [self->mArray addObject:@"array 1"]; [self->mArray addObject:@"array 2"]; [self->mArray addObject:@"array 3"]; [self->mArray addObject:@"array 4"]; } return self;}//NSMutableArray//实现这个可以通过下标赋值 array[2] = @"2";- (void)setObject:(id)anObject atIndexedSubscript:(NSUInteger)index{ const NSUInteger length = [mArray count]; if(index > length) return; if(index == length) [mArray addObject:anObject]; else [mArray replaceObjectAtIndex:index withObject:anObject]; }//NSMutableArray NSArray//实现这个可以通过下标访问元素- (id)objectAtIndexedSubscript:(NSUInteger)idx{ if(idx >= [mArray count]) return nil; return [mArray objectAtIndex:idx]; }@end
//// MyDictionary.h// 001-自己实现数组下标////#import <Foundation/Foundation.h>@interface MyDictionary : NSObject{ @private NSMutableDictionary * mDict;}- (void)setObject:(id)object forKeyedSubscript:(id < NSCopying >)aKey;- (id)objectForKeyedSubscript:(id)key;@end
//// MyDictionary.m// 001-自己实现数组下标////#import "MyDictionary.h"@implementation MyDictionary- (instancetype)init { self = [super init]; if (self) { self->mDict = [[NSMutableDictionary alloc] init]; [self->mDict setObject:@"dict 1" forKey:@"1"]; [self->mDict setObject:@"dict 2" forKey:@"2"]; [self->mDict setObject:@"dict 3" forKey:@"3"]; [self->mDict setObject:@"dict 4" forKey:@"4"]; } return self; }//通过key赋值- (void)setObject:(id)object forKeyedSubscript:(id < NSCopying >)aKey{ [mDict setObject:object forKey:aKey]; }//通过key取值- (id)objectForKeyedSubscript:(id)key{ return [mDict objectForKey:key]; }@end
测试代码:
@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor = [UIColor whiteColor]; MyArray * myarray = [[MyArray alloc] init]; NSLog(@"%@", myarray[2]); myarray[2] = @"change array 2"; NSLog(@"%@", myarray[2]); MyDictionary * mydict = [[MyDictionary alloc] init]; NSLog(@"%@", mydict[@"2"]); mydict[@"2"] = @"change dict 2"; NSLog(@"%@", mydict[@"2"]); }
输出:
2016-06-20 16:04:06.485 001-自己实现数组下标[8751:2834015] array 32016-06-20 16:04:06.487 001-自己实现数组下标[8751:2834015] change array 22016-06-20 16:04:06.489 001-自己实现数组下标[8751:2834015] dict 22016-06-20 16:04:06.489 001-自己实现数组下标[8751:2834015] change dict 2
0 0
- Objective-C实现一个基于数组下标[index]和字典[@"key"]的访问模式
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- 基于 Objective-C OC的省市区代码(字典数组嵌套)
- Objective-C 声明一个C语言类型的数组和访问方式@property
- 在一个数组里实现不同的下标访问不一样的数据类型。
- PHP 获取数组任意下标key的上一个prev和下一个next下标值
- c语言实现在一个数组中求出最大数所在的下标
- objective-c基于key的序列化和反序列化
- [2]姥爷幽默谈Objective-C(数组和字典)
- Objective-C中遍历字典、数组和集合的几种常见方式
- Objective - C 字符串 数组 字典 集合的基本使用
- objective-c 省市区练习(数组与字典的嵌套)
- #Objective-C 之 省市区 (数组-字典-数组-字典-数组)
- Objective-c LLVM 4.0 的新特性 NSArray支持下标访问
- c语言找到数组中最大的成员和下标
- Chrome 的 开发者工具(F12、devtools)开启缓慢解决方法
- Oracle VM VirtualBox 安装ubuntu系统后如何设置文件夹共享
- Thread(线程),run(),start()
- 剑指offer-面试题25:二叉树中和为某一值的路径
- 谈Runtime机制和使用的整体化梳理
- Objective-C实现一个基于数组下标[index]和字典[@"key"]的访问模式
- Ubuntu14.04 安装Eclipse
- 【CSS3】文字与字体--慕课网【学习总结】
- phpStudy设置301重定向
- PHP Apache Mysql的配置搭建及多站点配置
- Android SurfaceView 学习笔记(二)
- Knowledge-Based Textual Inference via Parse-Tree Transformations 翻译
- ubuntu 16.04 LTS 系统中配置svn服务器
- 嵌入式LAB 1:启动