我正在观看一个演示,我意识到我不了解关于目标 c 编程风格的一些基本知识。该演示恰好是斯坦福 CS193P 的第 14 课。请参阅下面的代码,看看是什么让我感到困惑。我认为与二传手有关。
@synthesize photoDatabase = _photoDatabase;
- (void)setPhotoDatabase:(UIManagedDocument *)photoDatabase
{
if (_photoDatabase != photoDatabase)
_photoDatabase = photoDatabase;
}
此代码来自本讲座/演示的 youtube 视频中的 25:00 。此处称为 photoDatabase 的合成属性恰好是 UIManagedDocument 类型。
我的第一个问题是,为什么我们要在@synthesize myProperty = _myProperty 中使用下划线。我对此有点困惑,一般来说都是编程新手。从 XCode 4 开始,我们在引用此属性时是否部分地合成以消除对下划线的需要?
我的第二个问题是 setPhotoDatabase: 方法的目的是什么。我假设讲师正在覆盖这种方法。究竟是为了什么目的?