Objective-C相当于'tuple unpacking'

时间:2013-09-10 18:32:45

标签: objective-c

有时候,当我不能使用Python时,我会感到难过。在Python中,我处理一个参数数组,解压缩它们:

name, handle, parent_handle, [left, top, right, bottom], showing, scrollable = data

我现在必须在Objective-C中使用NSArray来做同样的事情。我注定了11行:

NSString *name = (NSString *)[data objectAtIndex:0];
NSNumber *handle = (NSNumber *)[data objectAtIndex:1];
//....

还是有更好的方法吗?

1 个答案:

答案 0 :(得分:12)

是。你注定要失败。 DOOMED! Mwah哈哈哈哈!

您可以省略强制转换并使用下标使其缩短一点:

NSString *name = data[0];
NSNumber *handle = data[1];
// ...

您可以省略强制类型转换,因为objectAtIndex:和下标返回类型id都可以转换为任何Objective-C类类型而不进行转换。