我正在使用最新的 SDK 开发 iOS 5.0+ 应用程序。
此应用是从 Android 应用迁移而来。
在 Android 应用程序上,我有以下代码:
private Object uploadWorkerLock = new Object();
private static final int UPLOAD_WORKER_SLEEP_TIME = 30000;
[ ... ]
synchronized (ServerManager.this.uploadWorkerLock) {
try {
ServerManager.this.uploadWorkerLock.wait(UPLOAD_WORKER_SLEEP_TIME);
} catch (InterruptedException e) {
return;
}
}
我有问题void java.lang.Object.wait(long millis)
。我可以通过这种方式迁移该代码:
NSCondition* uploadWorkerLock;
[ ... ]
[uploadWorkerLock lock];
[uploadWorkerLock wait];
[uploadWorkerLock unlock];
在阅读有关wait(long)的Java 文档时,我已经阅读了以下内容:
导致当前线程等待,直到另一个线程为此对象调用 notify() 方法或 notifyAll() 方法,或者经过了指定的时间量。
我知道我可以调用[uploadWorkerLock invoke]
,但我如何模拟指定的时间已经过去。?
顺便说一句,这段代码在一个NSThread selector
.