我面临两个声明NSArray<MyProtocol>
和NSDictionary<MyProtocol>
. 我没有找到正确的解释以及如何正确使用它。
问问题
70 次
1 回答
3
我认为这可能与最近运行的一个聪明的宏有关(可能是这个,GitHub上有很多类似的项目)。
NSArray
和存储的值NSDictionary
是类型id
。这基本上意味着正在存储的对象的类型是无类型的。这样做的问题是您失去了类型安全性。有问题的宏试图通过创建应用于数组/字典的协议来解决此问题,以便返回的对象具有比id
.
<MyProtocol>
在 Xcode 中,您可以通过 cmd+clicking找到声明的位置<MyProtocol>
。
我个人会避免使用这样的宏。他们正在解决一个问题,但解决方案不符合 Objective-C 的精神。我将通过以下一项或多项解决此问题:
- 确保集合具有描述性实例/变量名称
- 创建另一个包装集合的类。
于 2013-09-03T08:50:19.743 回答