# Initialization

The method for initializing the Wepin iOS PIN Pad Library is as follows.

Before creating an instance of `WepinPin`, please pass the App ID and App Key to the `WepinPinParams` object as shown below.

```swift
let initPinParam = WepinPinParams(appId: appId, appKey: appKey)
```

Please create a `WepinPin` instance by passing the previously created `WepinPinParams`.

```swift
var wepinPin = WepinPin(initPinParam);
```

After creating the `WepinPin` instance, call the `initialize` method to complete the initialization.

```swift
await wepinPin?.initialize(attributes: attributes)
```

#### parameters

&#x20;`attributes` \<WepinPinAttributes>

* `language` \<String>\
  The default language setting for the PIN pad screen is `'en'`. Currently supported languages are `'ko'`, `'en'`, and `'ja'`.

#### Return value

`<Bool>`\
Returns **true** if successful, and **false** if it fails.

### Example

```swift
let appKey: String = "Wepin-App-Key"
let appId: String = "Wepin-App-ID"
var wepinPin: WepinPin? = nil
let initPinParam = WepinPinParams(appId: appId, appKey: appKey)
wepinPin = WepinPin(initPinParam)
// Call initialize function
let attributes = WepinPinAttributes(language: "en")
if let res = try await wepinPin?.initialize(attributes: attributes) {
    self.tvResult.text = "Successed: \(res)"
} else {
    self.tvResult.text = "Failed: No result returned from initialization"
}
```

## isInitialized

You can use the `isInitialized` method to check if the `WepinPin` instance has been successfully initialized.

* \<Bool>\
  Returns **true** if initialization was successful and **false** if it failed.

```swift
let result = wepinPin!.isInitialized()
```

## changeLanguage

```swift
wepinPin!.changeLanguage(language: "ko")
```

Changes the language displayed on the PIN pad screen. Currently, only `'ko'`, `'en'`, and `'ja'` are supported.<br>

**Parameters**

* &#x20;`language` \<String>

### **Return value**

* \<Void>

### Example

```swift
wepinPin!.changeLanguage(language: "ko")
```
