---
title: "init(byMerging:forStoreMetadata:)"
framework: coredata
role: symbol
role_heading: Initializer
path: "coredata/nsmanagedobjectmodel/init(bymerging:forstoremetadata:)"
---

# init(byMerging:forStoreMetadata:)

Returns, for the version information in given metadata, a model merged from a given array of models.

## Declaration

```swift
init?(byMerging models: [NSManagedObjectModel], forStoreMetadata metadata: [String : Any])
```

## Parameters

- `models`: An array of instances of NSManagedObjectModel.
- `metadata`: A dictionary containing version information from the metadata for a persistent store.

## Return Value

Return Value A  merged model from models for the version information in metadata. If a model cannot be created to match the version information in metadata, returns nil.

## Discussion

Discussion This is the companion method to mergedModel(from:forStoreMetadata:).

## See Also

### Creating a managed object model

- [init(contentsOf:)](coredata/nsmanagedobjectmodel/init(contentsof:).md)
- [init()](coredata/nsmanagedobjectmodel/init().md)
- [mergedModel(from:)](coredata/nsmanagedobjectmodel/mergedmodel(from:).md)
- [mergedModel(from:forStoreMetadata:)](coredata/nsmanagedobjectmodel/mergedmodel(from:forstoremetadata:).md)
- [init(byMerging:)](coredata/nsmanagedobjectmodel/init(bymerging:).md)
