nsrunloop

    74熱度

    3回答

    任何人都可以解釋什麼是NSRunLoop?所以據我所知NSRunLoop是與NSThread連接的東西吧?因此,假設我創建了一個線程,如 NSThread* th=[[NSThread alloc] initWithTarget:self selector:@selector(someMethod) object:nil]; [th start]; -(void) someMethod {

    2熱度

    2回答

    我想更詳細地瞭解iOS上的多線程。我通過一些像NSThread,NSRunLoop,NSTask類引用的去.. 首先作爲下面的鏈接上顯示:一個Thread內 use of runloop Runloop運行。 那麼爲什麼我們需要在我們的應用程序中定義我們自己的Runloop?在NSThread的情況下,這很有用,因爲一些耗時的進程可以在單獨的線程中運行,以便應用程序在主線程上仍能夠響應。

    0熱度

    1回答

    我試圖使用Grand Central Dispatch and unit testing,Pattern for unit testing async queue that calls main queue on completion中描述的模式,主要在:https://github.com/AFNetworking/AFNetworking/issues/466#issuecomment-791

    1熱度

    1回答

    我正在編寫我的第一個OS X命令行程序,這是一個服務器風格的程序。它的工作是處理各種信息並響應其他事件。 我有下面的代碼在我的main.m int main(int argc, const char * argv[]) { @autoreleasepool { PIPieman *pieman = [[[PIPieman alloc] init] autorelease];

    1熱度

    2回答

    我設置到不同的隊列中運行,並調用延遲後的另一種方法塊: piemanQ = dispatch_queue_create(PIEMAN_QUEUE_NAME, NULL); dispatch_async(piemanQ, ^{ [self performSelector:@selector(sendReadyToPieman) withObject:nil afterDelay:1.0]

    6熱度

    1回答

    我的應用使用CLLocationManager跟蹤用戶。在代表電話didUpdateToLocation我做所有保存他們的立場有趣的東西。但是,我需要一種方法來測試它們是否停止。那我可以停止錄製地點,並考慮他們的旅行結束。所以我在CCLocationManager中有一個NSTimer,每調用一次didUpdateToLocation就會被添加和刪除。當用戶停止並且CLLocationManage

    3熱度

    1回答

    我用下面的代碼在主運行循環調度事件: [stream setDelegate:self]; [stream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode]; [stream open]; 我認爲這意味着NSStreamDelegate事件被調度在主運行循環中,因此如果頻率足夠高,可能會影響UI響

    5熱度

    1回答

    我還沒有找到任何體面的文檔來解釋NSStream的線程過程。具體來說,讓我們來看看NSInputStream。在Objective-C中對我進行線程處理目前是個謎,因爲它看起來很簡單。 什麼,我的問題是指此行主要是: [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

    0熱度

    1回答

    我目前在Mac OS X應用程序中使用蘋果公司的SimplePing在傳輸數據之前ping一個URL,這工作正常,但鎖定我的用戶界面。我可能沒有在正確的地方尋找,但我怎樣才能避免這種情況發生?我目前正在使用currentRunLoop,我認爲這是問題所在,但我仍然希望用戶能夠在此操作期間與UI進行交互(例如取消)。如何爲Simple Ping創建運行循環,以便我的UI不鎖定? SimplePing

    0熱度

    2回答

    取消目前的NSTimer我這樣做是: timer = [NSTimer timerWithTimeInterval:timeUntilAction target:self selector:@selector(actionToPerform) userInfo:nil repeats:NO]; NSRunLoop *runLoop = [NSRunLoop currentRunLoop]; [