在数组

时间:2016-05-20 12:43:11

标签: objective-c arrays

对于我们的应用程序,我们有一个复杂的全局数据对象。让我们调用这个对象A.对象A有一个强大的非原子数组,对象为B类,我们可以将它们称为B1,B2,B3等。这些B对象中的每一个都可以再次拥有一个数组,类型为C的对象,比如C1 ,C2等...

现在,当我们在应用程序的第一次启动时创建这个复杂的结构时,C对象异步开始下载图像等。当这个过程完成时,它会调用一个委托函数。这个"完成加载活动"代表设置后明确启动!通过单例模式访问该对象。

但是,当它完成时,C对象中的委托是nil。

我们认为它与引用该对象有关。我们设置委托的那一刻,我们只需通过

设置C对象委托
[[A objectAtIndex:x] objectAtIndex:y].delegate = self;

然而,当C的加载结束,我们检查委托是什么时,它是零。 ObjectAtIndex是一种只读方法。对象C本身也可能包含一个数组,使树更深。

如何解决这个问题?我们可以得到一个"参考"到数组中的对象而不是" copy"?

其他信息:

以上信息是任意的,而不是实际的代码。它只是给人一种正在发生的事情的印象。

问题是复杂树中应该有一个对象,但是当我调整此对象并稍后再次检查时,调整未应用。

代表声明:

@property (strong,nonatomic) id<HKWidgetModel> delegate;

1 个答案:

答案 0 :(得分:0)

我应该使用阻止而不是代理来避免这种共谋。