I have one subclass of NSManagedObject like following and stored some instances by NSManagedObjectContext.
@interface SomeModelObject : NSManagedObject @prop
Given that the primary key is an opaque data type whose value is an arbitrary implementation detail completely outside of your control (including potentially not being constant over time), it seems non-sensical to want to sort by it.
If you are looking for a stable, determined, order, then -- yes -- sort by a different attribute, either an existing one or a new one.
Note that, in general, it is best to not think of Core Data in relational database terms. Focus on the object graph and object modeling aspects as that is what the APIs are focused upon.
Use a sort descriptor with self
as the sort key (instead of id
). The underlying SQL will have ORDER BY t0.Z_PK
.
Warning: as mentioned by vastopa below this is undocumented and crashes in iOS 10, and there is also a non-null probability that this breaks in a future version of iOS, so use at your own risk.