这是什么?
我不确定我是否完全明白这是做什么的。
- (NSString *)sectionIdentifier {
[self willAccessValueForKey:@"sectionIdentifier"];
NSString *tmp = [self primitiveSectionIdentifier];
[self didAccessValueForKey:@"sectionIdentifier"];
if (!tmp) {
tmp = @"bananas";
[self setPrimitiveSectionIdentifier:tmp];
}
return tmp;
}
为什么我需要这个 primitiveSectionIdentifier ?
最终,我正在使用Apple的文档中的示例项目来创建一个节标识符,以便与我的NSFetchedResultsController一起使用。
虽然这确实有效。我对自己说,
将访问“ sectionIdentifier ”, 然后我将“ tmp ”设置为 primitiveSectionIdentifier 。但是primitiveSectionIdentifier在这一点上什么也没有!是吗?
然后我说我确实访问了“ sectionIdentifier ”。但是我看不出“Will”和“Did”之间发生了怎么回事!
有人能帮我理解吗?
答案 0 :(得分:3)
[self primitiveSectionIdentifier]
是所谓的“原始访问者”(参见“核心数据编程指南”的词汇表)。这是实际从持久性存储中获取“sectionIdentifier”值的函数。该功能由Core Data运行时自动创建。
willAccessValueForKey
和didAccessValueForKey
是“通知方法”。根据文档,它们用于键值观察,维持反向关系等。
所以模式是: