<!--
{
  "availability" : [
    "iOS: 3.0.0 -",
    "iPadOS: 3.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.5.0 -",
    "tvOS: -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreData",
  "identifier" : "/documentation/CoreData/NSFetchRequest/includesPropertyValues",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Core Data"
    ],
    "preciseIdentifier" : "c:objc(cs)NSFetchRequest(py)includesPropertyValues"
  },
  "title" : "includesPropertyValues"
}
-->

# includesPropertyValues

A Boolean value that indicates whether, when the fetch is executed, property data is obtained from the persistent store.

```
var includesPropertyValues: Bool { get set }
```

## Discussion

This value is <doc://com.apple.documentation/documentation/Swift/true> if when the fetch is executed, property data is obtained from the persistent store; otherwise it is <doc://com.apple.documentation/documentation/Swift/false>. The default value is <doc://com.apple.documentation/documentation/Swift/true>.

You can set [`includesPropertyValues`](/documentation/CoreData/NSFetchRequest/includesPropertyValues) to <doc://com.apple.documentation/documentation/Swift/false> to avoid creating objects to represent property values and thereby reduce memory overhead. You typically should only do so, however, if you are sure that you will not need the actual property data, or you already have the information in the row cache. Otherwise, you will incur multiple trips to the database.

During a normal fetch ([`includesPropertyValues`](/documentation/CoreData/NSFetchRequest/includesPropertyValues) is <doc://com.apple.documentation/documentation/Swift/true>), Core Data fetches the object ID *and* property data for the matching records, fills the row cache with the information, and returns managed objects as faults (see [`returnsObjectsAsFaults`](/documentation/CoreData/NSFetchRequest/returnsObjectsAsFaults)). Although these faults are managed objects, all of their property data still resides in the row cache until the fault is fired. When the fault is fired, Core Data retrieves the data from the row cache—there is no need to go back to the database.

If [`includesPropertyValues`](/documentation/CoreData/NSFetchRequest/includesPropertyValues) is <doc://com.apple.documentation/documentation/Swift/false>, then Core Data fetches *only* the object ID information for the matching records—it does not populate the row cache. Core Data still returns managed objects because it only needs managed object IDs to create faults. However, if you subsequently fire the fault, Core Data looks in the (empty) row cache, doesn’t find any data, and then goes back to the store a second time for the data.

If [`includesPropertyValues`](/documentation/CoreData/NSFetchRequest/includesPropertyValues) is <doc://com.apple.documentation/documentation/Swift/true> and [`resultType`](/documentation/CoreData/NSFetchRequest/resultType) is set to [`managedObjectIDResultType`](/documentation/CoreData/NSFetchRequestResultType/managedObjectIDResultType), the properties are fetched even though they are not being presented to the application and can result in a significant performance penalty.

---

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)