小编Sim*_*ton的帖子

ARC还是ARC?优缺点都有什么?

我还没有使用ARC,因为我正在研究的项目中的大部分代码都是在iOS 5.0之前编写的.

我只是想知道,手动保留/释放的便利性(以及可能因此产生的更可靠的代码?)是否超过使用ARC的任何"成本"?您对ARC有什么经历,您会推荐它吗?

所以:

  • ARC为项目带来了多少好处?
  • ARC是否像Java中的垃圾收集一样?
  • 您是否一直在使用ARC,如果是这样,到目前为止您是如何找到它的?

iphone objective-c ipad ios5 automatic-ref-counting

112
推荐指数
3
解决办法
2万
查看次数

Objective-C中的访客模式

我一直在寻找在Objective-C中实现Visitor设计模式的最佳方法.由于该语言不支持方法重载,因此在Java中可能发现的"传统"实现似乎是不可能的.

在我当前的实现中,我有一个Visitor协议,一个Visitor类,以及该Visitor类的几个子类,以及要访问的各种对象.一旦访问对象接受访问者,他们就会调用访问者的访问方法,将自己作为参数传递.visit方法接受一个id,然后键入它并调用它

[self performTasksOnObjectClass: (ObjectClass *)object];
Run Code Online (Sandbox Code Playgroud)

作为if/elseif/else块的一部分.这些调用由相关的Visitor子类拾取,访问者执行对象所需的任何任务.

有没有比这更好的实现访客模式的方法?我不喜欢在if/elseif/else块中使用'isKindOfClass'或'isMemberOfClass'调用.它看起来很笨重而且不够优雅.另外,以这种方式实现Visitor方法还值得吗?访问过的对象仍然可以不知道访问者,但还有其他方法可以实现这一点.

已经有人提出,委托或类集群可能是访客模式的更合适的替代方案.我有兴趣看看你们都在想什么!

编辑:我实际上在子类中调用了不同的命名方法,我已经更清楚了.

design-patterns objective-c visitor ios

12
推荐指数
1
解决办法
3421
查看次数