Objective-C Mapping for Local Interfaces

The Ice run time defines APIs using Slice. These APIs are provided as part of the Ice run time library and cannot be invoked remotely. (Doing so would not make any sense.) Therefore, the Slice interfaces for the Ice run time are defined as local interfaces.

Unlike the mapped Objective-C interfaces for non-local Slice interfaces, the mapped Objective-C for local Slice interfaces do not adopt the <interface-name>Prx protocol. (Doing so would be misleading because proxies imply that the target object can be remote.) Instead, the protocol for local interfaces has the same name as the interface. For example, the Ice::Communicator interface is mapped simply as:

Objective-C
@protocol ICECommunicator
...
@end

Because Communicator is a local interface, objects of type ICECommunicator are passed as id<ICECommunicator> (not ICECommunicator* or id<ICEComunicatorPrx>).

See Also