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
, возвратYES
true
если успешный илиNO
false
если работа испытывает таймаут.Объявление
Swift
func sendBeforeDate(_
aDate
: NSDate) -> BoolObjective C
- (BOOL)sendBeforeDate:(NSDate *)
aDate
Параметры
aDate
Момент, перед которым должно быть отправлено сообщение.
Возвращаемое значение
YES
true
если работа успешна, иначеNO
false
(например, если работа испытывает таймаут).Обсуждение
Если ошибка кроме времени происходит, этот метод мог бы повысить
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: UInt32
Objective C
@property uint32_t msgid
Параметры
msgid
Идентификатор для получателя.
Обсуждение
Сотрудничающие приложения могут использовать этот метод для определения различных типов сообщений, таких как запросы на установление соединения, RPCs, ошибки, и т.д.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает идентификатор для получателя.
Объявление
Swift
var msgid: UInt32
Objective C
@property uint32_t msgid
Возвращаемое значение
Идентификатор для получателя.
Обсуждение
Сотрудничающие приложения могут использовать это для определения различных типов сообщений, таких как запросы на установление соединения, RPCs, ошибки, и т.д.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
См. также