Xcode在创建使用核心数据的导航应用程序时生成的代码将fetchedResultsController_声明为私有
@private
NSFetchedResultsController *fetchedResultsController_;
NSManagedObjectContext *managedObjectContext_;
有人请说明是否有理由将其声明为私人?
我打算创建一个CommontableViewController并将其子类化,以便在带有五个选项卡的标签栏应用程序中使用。如果我删除私有声明并使其受到保护,是否有任何问题。我的编译器没有给出任何警告,但我担心数据的完整性。
答案 0 :(得分:2)
我相信模板还会为这两个变量添加@property
声明;那是对的吗?如果是这样,您的子类应使用self.fetchedResultsController
和self.managedObjectContext
,而不是直接访问变量。这样你就可以保持封装并保持变量的私密性。
让它们成为私有的关键是只有超类负责为这些对象设置存储;子类只有在想要使用时才能使用getter方法。当然,如果你决定让它们受到保护,什么都不会爆炸,但我认为没有真正的需要。