---
title: decodeData()
framework: foundation
role: symbol
role_heading: Instance Method
path: foundation/nscoder/decodedata()
---

# decodeData()

Decodes and returns an NSData object that was previously encoded with encode(_:). Subclasses must override this method.

## Declaration

```swift
func decodeData() -> Data?
```

## Discussion

Discussion The implementation of your overriding method must match the implementation of your encode(_:) method. For example, a typical encode(_:) method encodes the number of bytes of data followed by the bytes themselves. Your override of this method must read the number of bytes, create an NSData object of the appropriate size, and decode the bytes into the new NSData object.

## See Also

### Decoding General Data

- [decodeArray(ofObjCType:count:at:)](foundation/nscoder/decodearray(ofobjctype:count:at:).md)
- [decodeBool(forKey:)](foundation/nscoder/decodebool(forkey:).md)
- [decodeBytes(forKey:returnedLength:)](foundation/nscoder/decodebytes(forkey:returnedlength:).md)
- [decodeBytes(withReturnedLength:)](foundation/nscoder/decodebytes(withreturnedlength:).md)
- [decodeDouble(forKey:)](foundation/nscoder/decodedouble(forkey:).md)
- [decodeFloat(forKey:)](foundation/nscoder/decodefloat(forkey:).md)
- [decodeCInt(forKey:)](foundation/nscoder/decodecint(forkey:).md)
- [decodeInteger(forKey:)](foundation/nscoder/decodeinteger(forkey:).md)
- [decodeInt32(forKey:)](foundation/nscoder/decodeint32(forkey:).md)
- [decodeInt64(forKey:)](foundation/nscoder/decodeint64(forkey:).md)
- [decodeObject()](foundation/nscoder/decodeobject().md)
- [decodeObject(forKey:)](foundation/nscoder/decodeobject(forkey:).md)
- [decodePoint()](foundation/nscoder/decodepoint().md)
- [decodePoint(forKey:)](foundation/nscoder/decodepoint(forkey:).md)
- [decodePropertyList()](foundation/nscoder/decodepropertylist().md)
