【发布时间】:2013-08-19 09:16:46
【问题描述】:
我在一个类中有两个独立的委托方法。
- (void)delegateMethod1:(id)data {
self.data = data;
}
- (void)delegateMethod2 {
[someClass sendData:self.data];
}
现在,这有时可以正常工作,但其他时候,delegateMethod2 在 delegateMethod1 之前被调用。
我需要知道如何优雅地管理这行:[someClass sendData:self.data]; 只有在 delegateMethod1 和 delegateMethod2 都被调用时才会被调用。
我知道我可以通过在每次委托调用时使用变量来设置某些内容来做到这一点,但必须有一种优雅的方式来做到这一点。
有什么帮助吗?
【问题讨论】:
-
委托方法是如何调用的?
-
它们在不同的事件上被独立调用。重要的是两者都在很短的时间内被调用。
-
你的问题似乎有点混乱。您已经将 [someClass sendData:] 方法放在了 delegateMethod2 中,然后您说 [someClass sendData:] 应该只在 delegateMethod1 和 delegateMethod2 都被调用之后才被调用。这怎么会发生?如果调用了 delegateMethod2,那么它将直接调用 [someClass sendData:] 方法。请详细说明。
-
^ 你是对的,这有点令人困惑。在我的示例中,我在delegateMethod2 中执行了[someClass sendData:],因为这是当前实现中的方式,因为通常delegateMethod2 在delegateMethod1 之后调用,但不确定。我不介意在 delegateMethod2 以外的地方调用 [someClass sendData:]。
-
@NSFeaster: 所以
[someClass sendData:self.data]应该在两个委托方法都被调用之后调用?
标签: iphone ios objective-c ipad cocoa-touch