---
title: version()
framework: objectivec
role: symbol
role_heading: Type Method
path: objectivec/nsobject-swift.class/version()
---

# version()

Returns the version number assigned to the class.

## Declaration

```swift
class func version() -> Int
```

## Return Value

Return Value The version number assigned to the class.

## Discussion

Discussion If no version has been set, the default is 0. Version numbers are needed for decoding or unarchiving, so older versions of an object can be detected and decoded correctly. Caution should be taken when obtaining the version from within an NSCoding protocol or other methods. Use the class name explicitly when getting a class version number: version = [MyClass version]; Don’t simply send version to the return value of class—a subclass version number may be returned instead. Special Considerations The version number applies to NSArchiver/NSUnarchiver, but not to NSKeyedArchiver/NSKeyedUnarchiver.  A keyed archiver does not encode class version numbers.

## See Also

### Related Documentation

- [version(forClassName:)](foundation/nscoder/version(forclassname:).md)

### Archiving

- [awakeAfter(using:)](objectivec/nsobject-swift.class/awakeafter(using:).md)
- [classForArchiver](objectivec/nsobject-swift.class/classforarchiver.md)
- [classForCoder](objectivec/nsobject-swift.class/classforcoder.md)
- [classForKeyedArchiver](objectivec/nsobject-swift.class/classforkeyedarchiver.md)
- [classFallbacksForKeyedArchiver()](objectivec/nsobject-swift.class/classfallbacksforkeyedarchiver().md)
- [classForKeyedUnarchiver()](objectivec/nsobject-swift.class/classforkeyedunarchiver().md)
- [replacementObject(for:)](objectivec/nsobject-swift.class/replacementobject(for:)-8ih2x.md)
- [replacementObject(for:)](objectivec/nsobject-swift.class/replacementobject(for:)-2l8ox.md)
- [replacementObject(for:)](objectivec/nsobject-swift.class/replacementobject(for:)-60vwc.md)
- [setVersion(_:)](objectivec/nsobject-swift.class/setversion(_:).md)
