gpt4 book ai didi

cocoa - 如何实现 NSMutableArray 中对象的键值观察

转载 作者:行者123 更新时间:2023-12-03 16:07:34 24 4
gpt4 key购买 nike

我需要一些帮助来尝试理解复杂的对象层次结构上的 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

最佳答案

不,这不正确。您必须单独观察添加到数组中的任何对象的属性。因此,每当将对象添加到数组或从数组中删除时,您都必须向添加/删除的对象添加/删除观察者。

关于cocoa - 如何实现 NSMutableArray 中对象的键值观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4769612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com