You can also add an attribute to your entity, name it something like "sortNum", and whenever you fetch your entity you fetch it with a sort descriptor.
Step 1
Add the sort attribute, in this case I named it "displayOrder"
Step 2
Append or insert the new item to your list.
let insertAt = 0
managedContextVar.insert(mngdObjectVar, atIndex: insertAt )
Step 3
Resort everything in that entity and update their sort value.
func updateDisplayOrder() {
for i in 0..<taskList_Cntxt.count {
let task = taskList_Cntxt[i]
task.setValue( i, forKey: "displayOrder" )
}
}
Then save!
Step 4
Now, next time you do a fetch request, make sure you add in the sort.
let sortDescriptor = NSSortDescriptor(key: "displayOrder", ascending: true )
That's it!
That should handle your sort fairly well. To be honest, sometimes this code does insert my new items second from the top instead of the top, but 95% of the time this code works great. Regardless, you get the idea and can tweak and improve it.
Good luck.