使用NSArray <myprotocol>和NSDictionaty <myprotocol> </myprotocol> </myprotocol>

时间:2013-09-03 08:12:25

标签: objective-c

我面临两个声明NSArray<MyProtocol>NSDictionary<MyProtocol>。我没有找到正确的解释,以及如何使用它。

1 个答案:

答案 0 :(得分:3)

我认为这可能与最近完成这一轮的聪明宏有关(possibly this one,GitHub上有很多类似的项目。)

NSArrayNSDictionary存储的值属于id类型。这基本上意味着所存储的对象的类型是无类型的。这个问题是你放松了类型安全。有问题的宏试图通过创建应用于数组/字典的协议来解决此问题,以便返回的对象具有比id更具体的类型。

在Xcode中,您可以通过cmd +点击<MyProtocol>找到<MyProtocol>声明的位置。

我个人会避免使用这样的宏。他们正在解决一个问题,但解决方案不符合Objective-C的精神。我会通过以下一种或多种方法解决这个问题:

  • 确保集合具有描述性实例/变量名称
  • 创建另一个包装集合的类。