I have an entity that contains lastName and firstName attributes. For reasons beyond the scope of this question, I want a fullName attribute that gets calculated as a concatena
I'm also new to this, so I'm not completely sure about my answer, but as I understand it you are correct.
- (NSString *)fullName
{
[self willAccessValueForKey:@"fullName"];
NSString *tmp = [self primitiveFullName];
[self didAccessValueForKey:@"fullName"];
if (!tmp) {
tmp = [NSString stringWithFormat:@"%@ %@", [self firstName], [self lastName]];
[self setPrimitiveFullName:tmp];
}
return tmp;
}
- (void)setFirstName:(NSString *)aFirstName
{
[self willChangeValueForKey:@"firstName"];
[self setPrimitiveFirstName:aFirstName];
[self didChangeValueForKey:@"firstName"];
[self setPrimitiveFullName:nil];
}
- (void)setLastName:(NSString *)aLastName
{
[self willChangeValueForKey:@"lastName"];
[self setPrimitiveLastName:aLastName];
[self didChangeValueForKey:@"lastName"];
[self setPrimitiveFullName:nil];
}
+ (NSSet *)keyPathsForValuesAffectingFullName
{
return [NSSet setWithObjects:@"firstName", @"lastName", nil];
}