将fetchedResultsController_更改为受私有保护

时间:2011-08-23 08:15:11

标签: iphone objective-c cocoa-touch core-data nsfetchedresultscontroller

Xcode在创建使用核心数据的导航应用程序时生成的代码将fetchedResultsController_声明为私有

@private
    NSFetchedResultsController *fetchedResultsController_;
    NSManagedObjectContext *managedObjectContext_;

有人请说明是否有理由将其声明为私人?

我打算创建一个CommontableViewController并将其子类化,以便在带有五个选项卡的标签栏应用程序中使用。如果我删除私​​有声明并使其受到保护,是否有任何问题。我的编译器没有给出任何警告,但我担心数据的完整性。

1 个答案:

答案 0 :(得分:2)

我相信模板还会为这两个变量添加@property声明;那是对的吗?如果是这样,您的子类应使用self.fetchedResultsControllerself.managedObjectContext,而不是直接访问变量。这样你就可以保持封装并保持变量的私密性。

让它们成为私有的关键是只有超类负责为这些对象设置存储;子类只有在想要使用时才能使用getter方法。当然,如果你决定让它们受到保护,什么都不会爆炸,但我认为没有真正的需要。

相关问题