Swift Mapping for Local Classes

On this page:

Mapped Swift Class

A local Slice class is mapped to a Swift protocol with the same name. For example:

Slice
module Ice
{
    local class ConnectionInfo
    {
        ...
    }
}

is mapped to the Swift protocol ConnectionInfo:

Swift
public protocol ConnectionInfo: AnyObject {
    ...
}


LocalObject in Swift

Like local interfaces, local Slice classes implicitly derive from LocalObject, which is mapped to AnyObject in Swift.

Mapping for Inheritance in Swift

A local Slice class can extend another local Slice class, and can implement one or more local Slice interfaces. Both extends and implements are mapped to protocol inheritance. 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:

Swift
public protocol A: AnyObject {}
public protocol B: AnyObject {}

public protocol C: A, B {}
public protocol D: C {}