objective-c - 具有核心数据和表格 View 的 Apple 模板 iOS 文件

标签 objective-c ios core-data

我了解 Objective-C 中的基本综合功能,但我不了解 Apple 在这里的功能。这显示在具有核心数据和表格 View 的项目模板的 RootViewController 中。

@synthesize managedObjectContext=__managedObjectContext;

“__”的目的是什么?当您合成一个对象并将其设置为等于另一个对象时,您在做什么,该对象在 View Controller 中的其他任何地方都没有使用,尽管它在应用程序委托(delegate)中使用?

我还注意到在 dealloc 方法中释放了 __managedObjectContext 而不是 managedObjectContext。

最佳答案

这样做的原因是为了保护程序员免受他自己的伤害。防御性编程。有时您希望通过访问器 (self.managedObjectContext) 访问值,有时您希望直接有效地访问实例变量 (__managedObjectContext)。

这是一个更普遍的问题,并不特定于 CoreData 或托管对象上下文。如果没有 = __managedObjectContext 部分,实例变量和它的访问器将具有相同的名称。编写 managedObjectContext = foo; 会放弃访问器和所需的 retain 的情况并不少见。随着变量名称的更改,您、您 future 的自己和代码的其他读者更可能会注意到一些问题,例如 __managedObjectContext = foo;

我经常会缩短类中的名称以及像 @synthesize managedObjectContext=_moc; 作为个人偏好 - 防止我的​​一些代码因长名称而换行。但保留了冗长且更具可读性的界面。

关于objective-c - 具有核心数据和表格 View 的 Apple 模板 iOS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6574300/

相关文章:

objective-c - 在 OS X 中以编程方式模拟/切换 CAPS LOCK

ios - 使用 NSNumberFormatter 将整数映射到字母?

ios - UITableViewCell 在不改变其内容布局的情况下调整高度

objective-c - NSSortDescriptor 应该对 NSDates 进行排序

cocoa - KVO : How to tell observer, self 改变了?

iOS NSFetchedResultsController 类似 Realm 版本 2.1 的类

ios - 用一个视频加载两个 AVPlayer

ios - 没有获得 ARKit 中相机位置的 session `didUpdate`

ios - 无论如何,在UIDatePicker中只显示小时和分钟吗?

ios - 来自 iMessage 应用扩展的应用内购买