<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: 15.4.0 -",
    "macOS: 12.3.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreMediaIO",
  "identifier" : "/documentation/CoreMediaIO/CMIOExtensionDevice/init(localizedName:deviceID:legacyDeviceID:source:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "Core Media I/O"
    ],
    "preciseIdentifier" : "c:objc(cs)CMIOExtensionDevice(im)initWithLocalizedName:deviceID:legacyDeviceID:source:"
  },
  "title" : "init(localizedName:deviceID:legacyDeviceID:source:)"
}
-->

# init(localizedName:deviceID:legacyDeviceID:source:)

Creates an extension device with an optional legacy device identifier.

```
init(localizedName: String, deviceID: UUID, legacyDeviceID: String?, source: any CMIOExtensionDeviceSource)
```

## Parameters

`localizedName`

A localized name for the device.

`deviceID`

A universally unique device identifier value.

`legacyDeviceID`

A string device identifier for backward compatibility with existing CMIO DAL clients. The value you provide can differ from the value of `deviceID.UUIDString`.

    Set this argument to     `nil`     if your device has no backward-compatibility requirements.

`source`

An extension-specific object that conforms to the [`CMIOExtensionDeviceSource`](/documentation/CoreMediaIO/CMIOExtensionDeviceSource) protocol.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)