NSPortMessage
NSPortMessage определяет низкий уровень, независимый от операционной системы тип для межприложения (и межпоток) сообщения. Сообщения порта используются прежде всего распределенной системой объектов. Необходимо реализовать межсвязь приложений с помощью распределенных объектов каждый раз, когда возможный и использование NSPortMessage только при необходимости.
NSPortMessage объект имеет три главных части: отправление и получает порты, которые являются NSPort возразите, что соединяют отправителя сообщения к получателю и компоненты, формирующие организацию сообщения. Компоненты сохранены как NSArray объектный содержащий NSData и NSPort объекты. NSPortMessage sendBeforeDate: сообщение отсылает компоненты через отправить порт; любые ответы на сообщение наступают в получить порт. Посмотрите NSPort спецификация класса для получения информации об обработке входящих сообщений.
NSPortMessage экземпляр может быть инициализирован с парой NSPort объекты и массив компонентов. Организация сообщения порта может содержать только NSPort объекты или NSData объекты. В распределенной системе объектов обычно кодируются массивы байта/символа NSInvocation объекты, передающиеся от прокси до соответствующего реального объекта.
NSPortMessage объект также поддерживает идентификатор сообщения, который может использоваться для указания класса сообщения, такого как вызов метода Objective C, запрос на установление соединения, ошибка, и т.д. Используйте setMsgid: и msgid методы для доступа к идентификатору.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
init (sendPort:receivePort:components:) - initWithSendPort:receivePort:components:Определяемый инициализаторИнициализирует недавно выделенный
NSPortMessageобъект отправить определенные данные на данном порту и к получателю отвечает на другом данном порту.Объявление
Параметры
sendPortПорт, на котором отправляется сообщение.
receivePortПорт, в который наступают ответы на сообщение.
componentsДанные для отправки в сообщении.
componentsдолжен содержать толькоNSDataиNSPortобъекты и содержаниеNSDataобъекты должны быть в сетевом порядке байтов.Возвращаемое значение
NSPortMessageобъект, инициализированный для отправкиcomponentsнаsendPortи к получателю отвечает наreceivePort.Обсуждение
NSPortMessageобъект, инициализированный с этим методом, имеет идентификатор сообщения 0.Это - определяемый инициализатор для
NSPortMessage.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Попытки отправить сообщение прежде
aDate, возвратYEStrueесли успешный илиNOfalseесли работа испытывает таймаут.Объявление
Swift
func sendBeforeDate(_aDate: NSDate) -> BoolObjective C
- (BOOL)sendBeforeDate:(NSDate *)aDateПараметры
aDateМомент, перед которым должно быть отправлено сообщение.
Возвращаемое значение
YEStrueесли работа успешна, иначеNOfalse(например, если работа испытывает таймаут).Обсуждение
Если ошибка кроме времени происходит, этот метод мог бы повысить
NSInvalidSendPortException,NSInvalidReceivePortException, илиNSPortSendException, В зависимости от типа отправляют порт и тип ошибки.Если сообщение не может быть сразу отправлено, передающие блоки потока, пока или сообщение не отправляется или
aDateдостигнут. Отправленные сообщения ставятся в очередь для минимизации блокирования, но отказ может произойти, если многократные сообщения отправляются в порт быстрее, чем владелец порта может получить их, заставив очередь заполниться. Поэтому выберите значение дляaDateэто обеспечивает достаточно времени для сообщения, которое будет обработано, прежде чем будет отправлено следующее сообщение. ПосмотритеNSPortспецификация класса для получения информации о получении сообщения порта.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает компоненты данных получателя.
Объявление
Swift
var components: [AnyObject] { get }Objective C
@property(readonly, copy) NSArray *componentsВозвращаемое значение
Компоненты данных получателя. См. Описание Класса для получения дополнительной информации.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Для исходящего сообщения, возвращает порт, в который наступят ответы на получатель. Для входящего сообщения, возвращает порт, в который действительно поступал получатель.
Объявление
Swift
var receivePort: NSPort? { get }Objective C
@property(readonly, retain) NSPort *receivePortВозвращаемое значение
Для исходящего сообщения, порта, в который наступят ответы на получатель. Для входящего сообщения порт получатель действительно поступал в.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Для исходящего сообщения, возвращает порт, который получатель отправит сам через. Для входящего сообщения, возвращается, ответы порта на получатель должны быть отправлены через.
Объявление
Swift
var sendPort: NSPort? { get }Objective C
@property(readonly, retain) NSPort *sendPortВозвращаемое значение
Для исходящего сообщения порт получатель отправит себя через, когда это получит a
sendBeforeDate:сообщение. Для входящего сообщения ответы порта на получатель должны быть отправлены через.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Устанавливает идентификатор для получателя.
Объявление
Swift
var msgid: UInt32Objective C
@property uint32_t msgidПараметры
msgidИдентификатор для получателя.
Обсуждение
Сотрудничающие приложения могут использовать этот метод для определения различных типов сообщений, таких как запросы на установление соединения, RPCs, ошибки, и т.д.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает идентификатор для получателя.
Объявление
Swift
var msgid: UInt32Objective C
@property uint32_t msgidВозвращаемое значение
Идентификатор для получателя.
Обсуждение
Сотрудничающие приложения могут использовать это для определения различных типов сообщений, таких как запросы на установление соединения, RPCs, ошибки, и т.д.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
