将 fetchedResultsController 更改为 protected from private
Posted
技术标签:
【中文标题】将 fetchedResultsController 更改为 protected from private【英文标题】:Changing fetchedResultsController_ to protected from private 【发布时间】:2011-08-23 08:15:10 【问题描述】:Xcode 在创建使用核心数据的基于导航的应用程序时生成的代码将 fetchedResultsController_ 声明为私有
@private
NSFetchedResultsController *fetchedResultsController_;
NSManagedObjectContext *managedObjectContext_;
有人请解释是否有理由将其声明为私有?
我打算创建一个 CommontableViewController 并将其子类化以在具有五个选项卡的选项卡栏应用程序中使用。如果我删除私有声明并使其受到保护,是否有任何问题。我的编译器没有给出任何警告,但我担心数据的完整性。
【问题讨论】:
【参考方案1】:我相信模板还为这两个变量添加了@property
声明;那是对的吗?如果是这样,您的子类应该使用self.fetchedResultsController
和self.managedObjectContext
而不是直接访问变量。这样您就可以保持封装并保持变量私有。
让它们成为私有的关键是只有超类应该负责为这些对象设置存储;子类可以在想要使用 getter 方法时使用它们。当然,如果你决定让它们受到保护,任何事情都不会起火,但我认为没有必要这样做。
【讨论】:
以上是关于将 fetchedResultsController 更改为 protected from private的主要内容,如果未能解决你的问题,请参考以下文章
Javascript 将正则表达式 \\n 替换为 \n,将 \\t 替换为 \t,将 \\r 替换为 \r 等等