【发布时间】:2011-01-22 18:12:51
【问题描述】:
我需要一些帮助来理解复杂的对象层次结构上的 KVO。让我设置场景。 MyClass 对象有一个包含 MyPerson 对象的可变数组属性。我想观察 MyClass 的 myPeople 属性的变化。此外,我还想观察 MyPerson 对象中包含的所有属性。这是类定义。
@interface MyClass:NSObject
{
NSMutableArray *myPeople;
}
@property(nonatomic, retain)NSMutableArray *myArray;
@end
这里是 MyPerson 对象,
@interface MyPerson:NSObject
{
NSString *myName;
NSString *myLastName;
}
@property(nonatomic, retain)NSString *myName;
@property(nonatomic, retain)NSString *myLastName;
@end
以下方式观察我感兴趣的属性是否正确?
MyClass *myClass = [[MyClass alloc] init]; //myPeople is filled with myPerson objects
MySchool *mySchool = [[MySchool alloc] init];
[myClass addObserver:mySchool
forKeyPath:@"myPeople"
options:NSKeyValueObservingOptionNew
context:NULL];
[myClass addObserver:mySchool
forKeyPath:@"myPeople.myName"
options:NSKeyValueObservingOptionNew
context:NULL]; //I am unsure about this one
[myClass addObserver:mySchool
forKeyPath:@"myPeople.myLastName"
options:NSKeyValueObservingOptionNew
context:NULL]; //I am unsure about this one
【问题讨论】: