Building on David's answer, this will solve it all together:
NSDictionary* items = @{ @"A":date1, @"B":date2, @"C":date3 };
NSArray *objectsArray = @{ obj1, obj2, obj3 };
NSArray *sortedObjectsArray = [objectsArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSDate *date1 = [items objectForKey:obj1.prop];
NSDate *date2 = [items objectForKey:obj2.prop];
return [date1 compare:date2];
}];