我正在尝试将我的所有任务从不同的 NSTimer 分配到一个队列,以便可以一项一项地完成任务。任务完成后,我将通过另一个班级的委托通知我。
更新:任务
我的应用程序正在尝试与另一台设备通信,但该设备一次只能接受一个任务,所以我必须每次向它发送一个任务,并确保我收到了表明任务已完成的确认完成,然后我可以要求它做下一个任务。
我尝试使用一个 BOOL 来控制 IDLE 的状态,SENDING 状态。但我无法使其同步,即使我使用了以下代码:
@property (atomic) BOOL ready2Send;
@end
@implementation ...
@synthesize ready2Send = _ready2Send;
- (BOOL)ready2Send
{
BOOL tmp;
@synchronized(self) {
tmp = _ready2Send;
}
return tmp;
}
- (void)setReady2Send:(BOOL)ready2Send
{
@synchronized(self){
if (_ready2Send != ready2Send) {
_ready2Send = ready2Send;
}
}
}
但它不起作用,总有一种情况,这个属性会一直保持 NO 直到死亡。
所以我开始考虑使用队列,也许是dispatch_queue。我的 UIViewController 需要一个队列。
我的问题是:
- 我上面的代码有什么问题?
- 如何用 dispatch_queue 实现我的想法。
- 如果有任何其他解决方案比上述两个更好,请告诉我。
感谢你。