非ARC Xcode项目中的编程方法

时间:2014-10-25 11:19:30

标签: ios objective-c xcode automatic-ref-counting

我需要在Xcode的非ARC项目中编写一些方法。我必须实现一个NSXMutableDictionary类,一个可以包含多达四个键值对的可变字典。我必须实现的方法如下:

- (void)setObject:(NSObject *)theObject forKey:(NSObject *)theKey;
- (void)removeObjectForKey:(NSObject *)theKey;

我不知道怎么做,任何帮助都会受到高度赞赏。

感谢。

2 个答案:

答案 0 :(得分:1)

继续下去并不是很多。 但是根据您提供的内容,最好将NSObject子类化,并拥有一个NSMutableDictionary的私有属性。 这允许您仅通过声明它们来实现NSMutableDictionary的所有相同方法,然后在您的实现中,您只需在实际字典属性上调用相同的方法。 您添加的差异是检查您是否已经有4个KVP。以及您需要或想要的任何其他方法。

这是作曲的设计模式。

答案 1 :(得分:1)

我同意@uchuugaka。创建一个在其中包含NSMutableDictionary的对象。 (这是" has-a"关系,而不是" is-a"关系)

NSDictionary系列被称为"类集群"。类集群是一个公共接口,实际上是由一组您不会看到的私有类实现的。

对作为类集群一部分的类进行子类化很棘手,而不适合初学者。为了创建类集群的子类,必须实现一整套原始方法。另外,您的自定义子类可能不会像原始类一样预先形成,因为您不会适应类集群等不同的用例。