为什么RACTuple可以写成RACTuple[0]的格式?!!!
2016-11-07 17:40
190 查看
最近看到Reactcocoa的RACTuple的类,它是一个类似于集合NAarray的类,甚至可以用id value = RACTuple[0]格式来写!我很是纳闷,为什么一个自定义的类可以用这种字面量?或者说 需要什么条件才能让自已写的类能够用这种字面量?
我自已写了一个例子, NSString *a = dog[0]; 会提示报错:expected method to read array element not found on object of type
难道是需要什么协议?
@interface RACTuple : NSObject <NSCoding, NSCopying, NSFastEnumeration>
后来发现还是不行!
最后终于发现了所在:
@interface RACTuple (ObjectSubscripting)
/// Returns the object at that index or nil if the number of objects is less
/// than the index.
- (id)objectAtIndexedSubscript:(NSUInteger)idx;
@end答案:不必实现任何协议,只需实现这个方法,clang就不会报错!
当然可以参考苹果的clang文档,地址:http://clang.llvm.org/docs/ObjectiveCLiterals.html
我自已写了一个例子, NSString *a = dog[0]; 会提示报错:expected method to read array element not found on object of type
难道是需要什么协议?
@interface RACTuple : NSObject <NSCoding, NSCopying, NSFastEnumeration>
后来发现还是不行!
最后终于发现了所在:
@interface RACTuple (ObjectSubscripting)
/// Returns the object at that index or nil if the number of objects is less
/// than the index.
- (id)objectAtIndexedSubscript:(NSUInteger)idx;
@end答案:不必实现任何协议,只需实现这个方法,clang就不会报错!
当然可以参考苹果的clang文档,地址:http://clang.llvm.org/docs/ObjectiveCLiterals.html
相关文章推荐
- java中设置日期格式的方式一般用SimpleDateFormat("YY-MM-dd")就可以了,但为什么有的 SimpleDateFormat("YY-MM-dd",locale.getDefau
- 为什么文件路径 Program Files 可以写成 Progra~1
- 为什么文件路径 Program Files 可以写成 Progra~1
- txt中,ANSI 的编码格式为什么可以显示中文?
- 为什么文件路径 Program Files 可以写成 Progra~1
- 光为什么可以用复数表示?
- C4.5决策树-为什么可以选用信息增益来选特征
- 为什么 我 的myeclipse调试的时候,有时鼠标放在变量上就显示变量值,有时就没有,提示不可以显示
- 吴晓波:为什么你如此努力还这么穷?可以算算自己的“屌丝值”
- 路由数据格式 可以用来做有趣的事情
- C# 将类的内容写成JSON格式的字符串
- 读《我的成功为什么可以复制》——唐骏
- abstract为什么不可以用static native或synchronized修饰
- WebSocket 是什么原理?为什么可以实现持久连接
- 平方损失函数为什么可以作为目标函数?
- 别人工作2年半跳槽面试阿里,成功拿到offer,为什么你不可以?
- 为什么父类指针可以指向子类反之则不行
- 为什么InetAddress类不能new初始化但可以定义对象:The constructor InetAddress() is not visible
- txt可以转换成pdf的格式的
- 如何安装 Microsoft Office 兼容包,以便您可以在早期版本的 Microsoft Office 中打开和保存 Office Open XML 格式