Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы основы ссылка класса NSDistributedLock

Опции
Развертывание Target:

На этой странице
Язык:

NSDistributedLock

NSDistributedLock класс определяет объект, который многократные приложения на многократных узлах могут использовать для ограничения доступа к некоторому совместно используемому ресурсу, такому как файл.

Блокировка реализована записью (такой как файл или каталог) в файловой системе. Для многократных приложений для использования NSDistributedLock возразите для координирования их действий, блокировка должна быть перезаписываема в файловой системе, доступной для всех узлов, на которых могли бы работать приложения.

Используйте tryLock метод, чтобы попытаться получить блокировку. Необходимо обычно использовать unlock метод для выпуска блокировки, а не breakLock.

NSDistributedLock не соответствует NSLocking протокол, и при этом это не имеет a lock метод. Протокол lock метод предназначается для блокирования выполнения потока до успешный. Для NSDistributedLock объект, это могло означать опрашивать файловую систему на некотором предопределенном уровне. Лучшее решение состоит в том, чтобы обеспечить tryLock метод и позволил Вам определить частоту запросов, которая целесообразна для Вашего приложения.

Наследование


Соответствует


Оператор импорта


Swift

import Foundation

Objective C

@import Foundation;

Доступность


Доступный в OS X v10.0 и позже.
  • Возвраты NSDistributedLock объект, инициализированный для использования в качестве блокировки, возражает записи файловой системы, указанной данным путем.

    Объявление

    Objective C

    + (NSDistributedLock *)lockWithPath:(NSString *)aPath

    Параметры

    aPath

    Весь из aPath до самого последнего компонента должен существовать. Можно использовать NSFileManager создать (и установить полномочия) для любых несуществующих промежуточных каталогов.

    Возвращаемое значение

    NSDistributedLock объект, инициализированный для использования в качестве блокировки, возражает записи файловой системы, указанной aPath.

    Обсуждение

    Для приложений для использования блокировки, aPath должно быть доступно для — и перезаписываем — все узлы, на которых могли бы работать приложения.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – initWithPath:

  • init (путь:) - initWithPath: Определяемый инициализатор

    Инициализирует NSDistributedLock возразите для использования в качестве блокировки записи файловой системы, указанной данным путем.

    Объявление

    Swift

    init?(path aPath: String)

    Objective C

    - (instancetype)initWithPath:(NSString *)aPath

    Параметры

    aPath

    Весь из aPath до самого последнего компонента должен существовать. Можно использовать NSFileManager создать (и установить полномочия) для любых несуществующих промежуточных каталогов.

    Возвращаемое значение

    NSDistributedLock объект, инициализированный для использования в качестве блокировки, возражает записи файловой системы, указанной aPath.

    Обсуждение

    Для приложений для использования блокировки, aPath должно быть доступно для — и перезаписываем — все узлы, на которых могли бы работать приложения.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    + lockWithPath:

  • Попытки получить получатель и сразу возвращают булево значение, указывающее, была ли попытка успешна.

    Объявление

    Swift

    func tryLock() -> Bool

    Objective C

    - (BOOL)tryLock

    Возвращаемое значение

    YEStrue если попытка получить получатель была успешна, иначе NOfalse.

    Обсуждение

    Повышения NSGenericException если происходит ошибка файловой системы.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Вынуждает блокировку быть оставленной.

    Объявление

    Swift

    func breakLock()

    Objective C

    - (void)breakLock

    Обсуждение

    Этот метод всегда успешно выполняется, если не была повреждена блокировка. Если другой процесс уже разблокировал или повредил блокировку, этот метод не имеет никакого эффекта. Необходимо обычно использовать unlock вместо breakLock оставить блокировку.

    Даже при повреждении блокировки нет никакой гарантии, что Вы тогда будете в состоянии получить блокировку — другой процесс мог бы получить ее перед Вашим tryLock вызывается.

    Повышения NSGenericException если не могла бы быть удалена блокировка.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

  • Оставляет получатель.

    Объявление

    Swift

    func unlock()

    Objective C

    - (void)unlock

    Обсуждение

    Необходимо обычно использовать unlock метод, а не breakLock выпускать блокировку.

    NSGenericException если получатель уже не существует, повышен.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – breakLock

  • Возвращает время, получатель был получен любым из NSDistributedLock объекты с помощью того же пути.

    Объявление

    Swift

    @NSCopying var lockDate: NSDate { get }

    Objective C

    @property(readonly, copy) NSDate *lockDate

    Возвращаемое значение

    Время получатель было получено любым из NSDistributedLock объекты с помощью того же пути. Возвраты nil если не существует блокировка.

    Обсуждение

    Этот метод потенциально полезен для приложений, хотящих использовать эвристику возраста, чтобы решить, слишком стара ли блокировка и должна быть повреждена.

    Если дата создания на блокировке не является датой, на которую Вы заблокировали его, Вы потеряли блокировку: это было повреждено, так как Вы в последний раз проверили его.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в OS X v10.0 и позже.