gpt4 book ai didi

ios - 如何观察NSMutableArray中单个元素的变化?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:03:43 25 4
gpt4 key购买 nike

假设我有这样一个类:

@interface MyClass : NSObject

@property (nonatomic, strong, getter=theDataGetter) NSMutableArray* theData;

@end

@implementation MyClass
-(NSMutableArray *)theDataGetter
{
return [self mutableArrayValueForKeyPath:@"theData"];
}
@end

这里,由于 theData 属性的 kvo complience(其他 kvo complience 方法被跳过)并且通过 mutableArrayValueForKeyPath 我可以观察到 之上的插入、更新、删除操作strong>theData 属性。现在假设这个数组包含可变字典。

self.obj = [[MyClass alloc] init];
_obj.theData = [[NSMutableArray alloc] initWithObjects:
[NSMutableDictionary dictionaryWithObjectsAndKeys:@"The one with glasses.",@"description",@"Manny",@"name", nil],
[NSMutableDictionary dictionaryWithObjectsAndKeys:@"Looks a little like Governor Dewey.",@"description",@"Moe",@"name", nil],
[NSMutableDictionary dictionaryWithObjectsAndKeys:@"The one without a mustache.",@"description",@"Jack",@"name", nil],
nil];

现在我的问题是如何观察theData 数组中任何字典的“description”键值的变化。假设我想观察第一个对象的 description 键值的变化,而不是现在持有的值。

最佳答案

如果你想观察数组 theData 的任何对象的 description 属性,唯一的方法是直接将观察者附加到它。

[_obj.theData[0] addObserver:<observing object>
forKeyPath:@"description"
options:(NSKeyValueObservingOptionNew |
NSKeyValueObservingOptionOld)
context:NULL];

这将观察第一个对象的变化。

关于ios - 如何观察NSMutableArray中单个元素的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26083632/

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