ios – 阻止vs私有方法?

使用块在方法中定义私有方法而不是使用真正的私有方法有什么缺点?除了无法从其他地方调用该方法之外还有什么吗?

例:

-(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;
}

解决方法

清晰的代码很重要.

方法允许您将整个代码段彼此分开封装,并使其更易于阅读.

选择私有方法而不是块的另一个原因是内存管理.这在很大程度上要讨论这个问题,但足以说块在内存管理中很奇怪,并且在这方面不像其他任何代码结构那样.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...