在Objective-C中,我知道块被视为对象,因此我想知道是否可以将它们存储在数组中。这就引出了一个问题,是块头等对象还是为了在对象之间传递它们而像对象一样对待它们?如果它们是一流的对象,那么它们不应该可存储在数组中吗?
最佳答案
我保留了原始答案,因为它包含一些有趣的技术细节。
块是Objective-C对象,它们的行为与其他NSObject相似,但有两个主要区别:
copy
方法将其移动到堆中(请参见下面的ARC点)。 autoreleased
的风险,并且您的应用程序稍后将崩溃。 我写了一些博客文章,都提供了introduction to blocks和一些tips and tricks。您可能会发现它们很有趣。
而且,是的,在字典中添加'em'非常有用。我编写了几段代码,将块放入字典中作为命令处理程序,其中的关键是命令名称。非常便利。
关于objective-c - 在阵列中存储块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7997666/