EasyTuple
是由美团开源的一个第三方库,它给Objective-C 添加了元组的能力,可以将几个对象包裹在一个对象中,这样我们就可以从一个函数中返回多个值。它的使用非常简单,比如我们想创建一个由两个元素组成的元组,那么可以这样写:
1 2 |
EZTuple2<NSNumber *, NSString *> *tuple = EZTuple(@1, @"string"); |
如果使用 Xcode 辅助编辑器查看预编译后的代码,那么上面的例子在预编译后,会被展开为
1 2 |
EZTuple2<NSNumber *, NSString *> *tuple = [[EZTuple2 alloc] initWithFirst:@1 second:@"string"]; |
可以看到原来的宏的写法会自动被转换成 Objective-C 中的类的创建语法了,那么这个转换过程是怎样发生的呢?下面让我们一步步地去分析这个转换的过程。 继续阅读“EasyTuple 源代码分析”