从类B实例运行方法的类A实例,它调用Class A wothout保留循环

时间:2013-09-17 16:38:03

标签: objective-c cocoa callback

我有一个我的LayerClass(Scene1.M)的实例,它可以生成移动的海洋,云等。这会创建一个我的Parachutist.M类的实例来制作一个精灵降落伞进入大海。在那里,我希望parachutist实例调用Scene1.M类中的一些方法。我有这个通过Scene1.M调用 parachutist = [Parachutist createParachutist:self];

在Parachutist.h中,createParachutist被定义为+(id)createParachutist:(id)parentID; Parachutist实例可以通过[parentID method1]等从Scene1.M运行方法,这可行。 问题是,当我转换到新场景时,我意识到Scene1.M实例未被释放,因为createParachutist实例具有所有权,因此我有一个保留周期。我读过__weak,但ARC似乎不允许这样做。我研究了回调和代表,但看不到要使用的内容。 我想要的是将Scene1实例的ID传递给Parachutist实例,而不创建保留周期但允许跳伞者调用Scene1中的方法。


非常感谢Vladimir和Rob确认__weak应该与ARC合作。我一直忙着专注于代表/回调等,只有当你确认ARC应该允许__weak我深入研究并发现我的部署目标是4.6x。一旦我将其更改为5然后允许__weak,这就解决了问题

0 个答案:

没有答案