使用块在方法中定义私有(private)方法而不是使用实际私有(private)方法有什么缺点?除了无法从其他地方调用该方法之外,还有什么吗?

例子:

-(NSDictionary*)serialize
{
    NSMutableDictionary* serialization = [NSMutableDictionary dictionary];

    TwoArgumentsBlockType serializeItemBlock = ^void(MyItemClass* item, NSString* identifier)
    {
        if (item)
        {
            // serialization code
        }
    };

    serializeItemBlock(self.someItem1, kSomeIdentifier1);
    serializeItemBlock(self.someItem2, kSomeIdentifier2);
    serializeItemBlock(self.someItem3, kSomeIdentifier3);
    serializeItemBlock(self.someItem4, kSomeIdentifier4);
    serializeItemBlock(self.someItem5, kSomeIdentifier5);
    serializeItemBlock(self.someItem6, kSomeIdentifier6);
    serializeItemBlock(self.someItem7, kSomeIdentifier7);
    serializeItemBlock(self.someItem8, kSomeIdentifier8);
    serializeItemBlock(self.someItem9, kSomeIdentifier9);
    serializeItemBlock(self.someItem10, kSomeIdentifier10);
    serializeItemBlock(self.someItem11, kSomeIdentifier11);

    return serialization;
}

最佳答案

代码的清晰性很重要。

方法使您可以封装彼此分开的整个代码节,并使其更易于阅读。

选择私有(private)方法而不是块的另一个原因是内存管理。在这里讨论这个话题几乎没有什么大不了的,但是足以说明块在内存管理中很奇怪,并且在这方面不像其他任何代码结构那样起作用。

10-08 18:49