nslock

    5熱度

    3回答

    我正在使用[ALAssetsLibrary enumerateGroupsWithTypes:]將ALAssets存儲在一個數組中。由於這是一個異步操作,我需要等待它完成才能繼續工作。 我讀Cocoa thread synchronisation when using [ALAssetsLibrary enumerateGroupsWithTypes:]並試用了推薦的NSConditionLock

    0熱度

    2回答

    我有一個iOS應用程序,帶有一個tabbar和3個不同的UIViewControllers,每個標籤一個。該應用程序使用SudzC與C# .NET webservice接口從數據庫中提取數據。 有一個從所有三個視圖控制器調用的webservice方法,但我想強制只有一個視圖控制器可以在任何時間點調用該方法,並且在數據一直存在之前沒有其他視圖控制器可以調用它回。 我試圖通過在每個viewContro

    2熱度

    2回答

    我正在爲iPhone編寫一個多線程應用程序,並且我正在使用NSLock來確保某些操作(例如從文件加載聲音)的行爲與原子一樣。爲了簡化從我的應用程序的不同部分獲取鎖,我編寫了以下類,它允許我通過將NSString傳遞給名稱來鎖定和解鎖鎖。如果這種鎖不存在,它會創建並保存以備將來使用。 我測試了它,它似乎工作正常(因爲它只是提供訪問NSLock對象,並不會改變它們的行爲)。 我的問題是:擁有和使用這樣

    2熱度

    2回答

    我有一個攝像頭會話,我從緩衝區採取圖片: -(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection { CVPixelBufferR

    1熱度

    1回答

    可能重複: What does @synchronized() do? 我有什麼@synchronized確實,什麼將是最適合我的應用程序的問題。 我有一個NSMutableArray,我將在後臺線程中進行變異並在前臺線程中進行訪問。如果在我改變它的內容的時候訪問數組,如果它意味着我可以從背景突變中獲取更新後的值,我很樂意輕鬆地訪問數組。然而,我不能100%確定NSLock s和@synchron

    5熱度

    1回答

    我正在實施一個通過用戶輸入進行動畫的健康欄。 這些動畫使它上下一定量(比如50個單位),並且是按下按鈕的結果。有兩個按鈕。增加和減少。 我想在健康欄上執行鎖定,以便一次只有一個線程可以更改它。問題是我陷入了僵局。 我猜測是因爲一個單獨的線程運行由另一個線程持有的鎖。但是當動畫完成時,該鎖定會讓路。你如何實現在[UIView AnimateWithDuration]完成時結束的鎖定? 我在想如果NS

    3熱度

    1回答

    我遇到了線程安全問題。我有一個隊列,當我修改內容導致跨線程錯誤。我之前沒有使用鎖,但是我想我會嘗試。我在所有爲我的隊列操作NSMutableArray的代碼上添加了一個鎖。我認爲這個問題是我沒有對它們全部使用相同的鎖。我在每個修改數組的方法中創建了一個新的NSLock實例。我假設我應該使用一個NSLock ivar來保護陣列。但是我的困惑來自事實,一旦我添加它就行了。以下是一個示例。我認爲無處不在

    3熱度

    2回答

    我試圖通過使用unlockWithCondition(使用NSConditionLock)來繞過NSLock,但無論我得到相同的結果: *斷開_NSLockError()進行調試。 * - [NSLock unlock]:lock('(null)')從未鎖定的線程解鎖。 我不確定是否it's不好,但什麼I'm這樣做是這樣的: new Thread: [lockA lock];//waiting

    5熱度

    1回答

    我有一個屬性@property NSLock *myLock 我想寫兩個方法: - (void) lock 和 - (void) unlock 這些方法鎖定和解鎖myLock分別是和他們需要這樣做,而不管它們是什麼線程或隊列。例如,線程A可能調用了lock,但隊列B可能是調用unlock的那個。這兩種方法都應該適當地工作,而不報告我正試圖解鎖來自鎖定它的不同線程/隊列的鎖。另外,他們需要同

    2熱度

    1回答

    我有一些代碼需要一個NSString作爲輸入,並使用該字符串來創建一個對象。我需要確保它不會在同一個字符串上運行兩次,例如如果從不同的線程調用,或者即使同一個線程試圖遞歸地執行它。 我可以通過製作我的初始化對象的字典開始,如果再次傳遞相同的字符串,則抓取該對象。但是這仍然會導致當其他代碼初始化時第二次請求對象時發生的情況。 我看到Apple爲我提供了NSLock類。我對如何將其應用於我的問題感到茫