IOS让自定义类是用下标
在ios中,有个非常有用的特性,就是可以为自己写的类增加下标访问功能。
如果我们自己的类中有个数组items,我们想直接给类加下标的方式来访问这个数组的元素,就像访问系统的数组一样,其实只要增加一个方法就可以。
- (id)objectAtIndexedSubscript:(NSUInteger)idx;
这个方法就是给类增加下标访问的功能。
看下具体的实现:
首先在MyClass.h文件中定义,
@property(nonatomic, strong, readonly)NSArray *items; - (id)objectAtIndexedSubscript:(NSUInteger)idx;
然后实现
- (id)objectAtIndexedSubscript:(NSUInteger)idx { return self.items[idx]; }
原先我们要访问items中的元素时,需要item = myClass.items[0];
现在只需要item = myClass[0];
当然,具体什么时候用,怎么用,看具体情况,如果随意的使用,很可能会让代码变的很难理解。