【问题标题】:Changing fetchedResultsController_ to protected from private将 fetchedResultsController 更改为 protected from private
【发布时间】:2011-08-23 08:15:10
【问题描述】:

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

@private
    NSFetchedResultsController *fetchedResultsController_;
    NSManagedObjectContext *managedObjectContext_;

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

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

【问题讨论】:

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


    【解决方案1】:

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

    让它们成为私有的关键是只有超类应该负责为这些对象设置存储;子类可以在想要使用 getter 方法时使用它们。当然,如果你决定让它们受到保护,任何事情都不会起火,但我认为没有必要这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-29
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 2017-09-23
      • 2016-03-02
      相关资源
      最近更新 更多