gpt4 book ai didi

cocoa - 这是一种符合 KVO 的良好方式来建模可变的多对多关系吗?

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

假设我想要一个可变的、无序的多对多关系。出于内部优化的原因,最好将其存储在 NSMutableDictionary 中,而不是 NSMutableSet 中。但我想将该实现细节保密。

我还想提供一些符合 KVO 的访问器,所以:

- (NSSet*)things;
- (NSUInteger)countOfThings;
- (void)addThings:(NSSet*)someThings;
- (void)removeThings:(NSSet*)someThings;

现在,为字典提供访问器(当然,在我的实现文件中是私有(private)的)会很方便,也不会那么邪恶,所以:

@interface MYClassWithThings ()
@property (retain) NSMutableDictionary* keyedThings;
@end

这对我来说似乎不错!我可以使用访问器来扰乱类中的 keyedThings,但其他对象认为它们正在处理可变的、无序的(无键的!)对多关系。

我担心我正在做的一些事情可能是“邪恶的”,但根据良好的风格和苹果的批准等等。我在这里做了什么坏事吗? (例如,由于 things 属性被认为是可变的,所以不提供 setThings 是错误的吗?)

最佳答案

我不会为字典创建一个属性(即使是私有(private)属性),但我不认为它有什么问题。

… is it wrong not to provide setThings, since the things property is supposedly mutable?

是的。 KVC 不会喜欢缺少 setThings: 方法。

关于cocoa - 这是一种符合 KVO 的良好方式来建模可变的多对多关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2481354/

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