Objective-C Mapping for Local Classes
On this page:
Mapped Objective-C Class
A local Slice class is mapped to an Objective-C protocol and interface with the same name. For example:
Slice
module Ice { local class ConnectionInfo { ... } }
is mapped to the Objective-C protocol and interface ICEConnectionInfo
:
Objective-C
@protocol ICEConnectionInfo <NSObject> @end @interface ICEConnectionInfo : ICELocalObject ... @end
LocalObject in Objective-C
Like local interfaces, local Slice classes implicitly derive from LocalObject
, which is mapped to ICELocalObject
in Objective-C.
Mapping for Local Interface Inheritance in Objective-C
A local Slice class can extend another local Slice class, and can implement one or more local Slice interfaces. extends
and implements
are mapped to interface and protocol inheritance in Objective-C. For example:
Slice
module M { local interface A {} local interface B {} local class C implements A, B {} local class D extends C {} }
is mapped to:
Objective-C
@protocol MA <NSObject> @end @protocol MB <NSObject> @end @protocol MC <MA, MB> @end @interface MC : ICELocalObject +(id) c; @end @protocol MD <MC> @end @interface MD : MC +(id) d; @end