NSPort
NSPort
абстрактный класс, представляющий канал передачи. Коммуникация происходит между NSPort
объекты, обычно находящиеся в различных потоках или задачах. Распределенное системное использование объектов NSPort
объекты отправить NSPortMessage
объекты назад и вперед. Необходимо реализовать межсвязь приложений с помощью распределенных объектов каждый раз, когда возможный и использование NSPort
объекты только при необходимости.
Получить входящие сообщения, NSPort
объекты должны быть добавлены к NSRunLoop
возразите как входные источники. NSConnection
объекты автоматически добавляют их получать порт, когда инициализировано.
Когда NSPort
объект получает сообщение порта, он передает сообщение своему делегату в a handleMachMessage:
или handlePortMessage:
сообщение. Делегат должен реализовать только один из этих методов для обработки входящего сообщения в любой желаемой форме. handleMachMessage:
обеспечивает сообщение как сырые данные сообщение Маха, начинающееся a msg_header_t
структура. handlePortMessage:
обеспечивает сообщение как NSPortMessage
объект, который является объектно-ориентированной оберткой для сообщения Маха. Если делегат не был установлен, NSPort
возразите обрабатывает само сообщение.
Когда Вы закончены с помощью объекта порта, необходимо явно лишить законной силы объект порта до отправки его a release
сообщение. Точно так же, если Ваше приложение использует сборку «мусора», необходимо лишить законной силы объект порта прежде, чем удалить любые сильные ссылки к нему. Если Вы не лишаете законной силы порт, получающийся объект порта может задержаться и создать утечку памяти. Для лишения законной силы объекта порта вызовите invalidate
метод.
Основа определяет три конкретных подкласса NSPort
. NSMachPort
и NSMessagePort
позвольте локальный (на той же машине) коммуникация только. NSSocketPort
допускает и местную и удаленную связь, но может быть более дорогим, чем другие для локального случая. При создании NSPort
объект, с помощью allocWithZone:
или port
, NSMachPort
объект создается вместо этого.
Наследование
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSCopying
-
NSObjectProtocol
-
Печатаемый
-
NSCoding
-
NSCopying
-
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
allocWithZone: + allocWithZone:
Доступный в OS X v10.0 через OS X v10.6Возвращает экземпляр
NSMachPort
класс.Объявление
Objective C
+ (id)allocWithZone:(NSZone *)
zone
Параметры
zone
Зона памяти, в которой можно выделить новый объект.
Возвращаемое значение
Экземпляр
NSMachPort
класс.Обсуждение
Для обратной совместимости на Махе,
allocWithZone:
возвращает экземплярNSMachPort
класс, когда отправлено вNSPort
класс. Иначе, это возвращает экземпляр конкретного подкласса, который может использоваться для обмена сообщениями между потоками или процессов на локальной машине, или, в случаеNSSocketPort
, между процессами на отдельных машинах.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 через OS X v10.6.
-
Создает и возвращает новое
NSPort
объект, способный и к отправке и к получению сообщений.Объявление
Objective C
+ (NSPort *)port
Возвращаемое значение
Новое
NSPort
объект, способный и к отправке и к получению сообщений.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Отмечает получатель как недопустимый и отправляет
NSPortDidBecomeInvalidNotification
к центру уведомления по умолчанию.Объявление
Swift
func invalidate()
Objective C
- (void)invalidate
Обсуждение
Необходимо вызвать этот метод прежде, чем выпустить объект порта (или удалить сильные ссылки к нему, если приложение собрано «мусор»).
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
допустимый допустимый
СвойствоБулево значение, указывающее, допустим ли получатель. (только для чтения)
Объявление
Swift
var valid: Bool { get }
Objective C
@property(readonly, getter=isValid) BOOL valid
Обсуждение
NO
false
если получатель, как известно, недопустим, иначеYES
true
.NSPort
объект становится недопустимым, когда его базовый коммуникационный ресурс, который зависим от операционной системы, закрыт или поврежден.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
См. также
-
Устанавливает делегата получателя в данном объекте.
Объявление
Swift
func setDelegate(_
anObject
: NSPortDelegate?)Objective C
- (void)setDelegate:(id<NSPortDelegate>)
anObject
Параметры
anObject
Делегат к получателю.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает делегата получателя.
Возвращаемое значение
Делегат получателя.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Добавляет получатель к списку портов, контролируемых данным выполненным циклом для данного режима ввода.
Объявление
Objective C
- (void)addConnection:(NSConnection *)
connection
toRunLoop:(NSRunLoop *)runLoop
forMode:(NSString *)mode
Параметры
connection
Объект соединения, вызвавший этот метод.
runLoop
Цикл выполнения, к которому можно добавить получатель.
mode
Режим цикла выполнения, в котором можно добавить получатель.
Обсуждение
Вы не должны вызывать этот метод непосредственно. Метод предоставлен для подклассификаторов, хотящих обеспечить их собственные типы
NSPort
.NSConnection
объект,connection
, вызовы этот метод в подходящее время.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
См. также
addPort:forMode:
(NSRunLoop) -
Удаляет получатель из списка портов, контролируемых
runLoop
в данном режиме ввода,mode
.Объявление
Objective C
- (void)removeConnection:(NSConnection *)
connection
fromRunLoop:(NSRunLoop *)runLoop
forMode:(NSString *)mode
Параметры
connection
Объект соединения, вызвавший этот метод.
runLoop
Цикл выполнения, к которому можно добавить получатель.
mode
Режим цикла выполнения, в котором можно добавить получатель.
Обсуждение
Вы не должны вызывать этот метод непосредственно. Метод предоставлен для подклассификаторов, хотящих обеспечить их собственные типы
NSPort
.NSConnection
объект,connection
, вызовы этот метод в подходящее время.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Этот метод предоставлен для подклассов, имеющих пользовательские типы
NSPort
.Объявление
Swift
func sendBeforeDate(_
limitDate
: NSDate, componentscomponents
: NSMutableArray, fromreceivePort
: NSPort, reservedheaderSpaceReserved
: Int) -> BoolObjective C
- (BOOL)sendBeforeDate:(NSDate *)
limitDate
components:(NSMutableArray *)components
from:(NSPort *)receivePort
reserved:(NSUInteger)headerSpaceReserved
Параметры
limitDate
Прошлый момент, который может быть отправлено сообщение.
components
Компоненты сообщения.
receivePort
Получить порт.
headerSpaceReserved
Число байтов зарезервировано для заголовка.
Обсуждение
NSConnection
вызовы этот метод в подходящее время. Этот метод нельзя вызвать непосредственно. Этот метод мог повыситьNSInvalidSendPortException
,NSInvalidReceivePortException
, илиNSPortSendException
, В зависимости от типа отправляют порт и тип ошибки.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-
sendBeforeDate (_: msgid:components:from:reserved:) - sendBeforeDate:msgid:components:from:reserved:
Этот метод предоставлен для подклассов, имеющих пользовательские типы
NSPort
.Объявление
Swift
func sendBeforeDate(_
limitDate
: NSDate, msgidmsgID
: Int, componentscomponents
: NSMutableArray, fromreceivePort
: NSPort, reservedheaderSpaceReserved
: Int) -> BoolObjective C
- (BOOL)sendBeforeDate:(NSDate *)
limitDate
msgid:(NSUInteger)msgID
components:(NSMutableArray *)components
from:(NSPort *)receivePort
reserved:(NSUInteger)headerSpaceReserved
Параметры
limitDate
Прошлый момент, который может быть отправлено сообщение.
msgID
Идентификатор сообщения.
components
Компоненты сообщения.
receivePort
Получить порт.
headerSpaceReserved
Число байтов зарезервировано для заголовка.
Обсуждение
NSConnection
вызовы этот метод в подходящее время. Этот метод нельзя вызвать непосредственно. Этот метод мог повыситьNSInvalidSendPortException
,NSInvalidReceivePortException
, илиNSPortSendException
, В зависимости от типа отправляют порт и тип ошибки.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-
reservedSpaceLength reservedSpaceLength
СвойствоЧисло байтов пространства зарезервировано получателем для отправки данных. (только для чтения)
Объявление
Swift
var reservedSpaceLength: Int { get }
Objective C
@property(readonly) NSUInteger reservedSpaceLength
Обсуждение
Число байтов зарезервировано получателем для отправки данных. Длина по умолчанию
0
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-
Этот метод должен быть реализован подклассом, чтобы прекратить контролировать порта, когда удалено из дать цикла выполнения в данном режиме ввода.
Объявление
Параметры
runLoop
Цикл выполнения, из которого можно удалить получатель.
mode
Режим цикла выполнения, из которого можно удалить получатель
Обсуждение
Этот метод нельзя вызвать непосредственно.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Этот метод должен быть реализован подклассом для установки контроля порта, когда добавлено к данному выполненному циклу в данном режиме ввода.
Объявление
Параметры
runLoop
Цикл выполнения, к которому можно добавить получатель.
mode
Режим цикла выполнения, к которому можно добавить получатель
Обсуждение
Этот метод нельзя вызвать непосредственно.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Отправленный от
invalidate
метод, вызывающийся когдаNSPort
освобожден или когда это замечает, что был поврежден его канал передачи. Объект уведомленияNSPort
объект, ставший недопустимым. Это уведомление не содержит auserInfo
словарь.NSSocketPort
объект не может обнаружить, когда его соединение с удаленным портом потеряно, даже если удаленный порт находится на той же машине. Поэтому это не может лишить законной силы себя и отправить это уведомление. Вместо этого необходимо обнаружить ошибку из-за тайм-аута, когда отправляется следующее сообщение.NSPort
объект, отправляющий это уведомление, больше не полезен, таким образом, все получатели должны не зарегистрировать себя для любых уведомлений, включающихNSPort
. Метод, получающий это уведомление, должен проверить для наблюдения, какой порт стал недопустимым прежде, чем попытаться сделать что-либо. В частности наблюдатели, получающие всеNSPortDidBecomeInvalidNotification
сообщения должны знать, что связь с сервером окна обрабатывается черезNSPort
. Если этот порт становится недопустимым, операции рисования вызовут фатальную ошибку.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.