Programming becomes a pleasure again, once you get past the past the hurdle of learning Swifts new features and differences.
I'll give you 3.
Swift makes header files unnecessary. Aren't you sick of maintaining both a .h and a .m file for every class?
Swift makes handling of nulls explicit. In Obj-C any pointer could be nil, and mostly it's not clear if that is actually a meaningful thing, or whether you need to check for nil "Just in case". Swift's optionals mean you always define whether a "pointer" can be nil. And so when you come to use a value, you know whether you should be checking for nil or not.
object.method() calls are far easier to read when chained than [object method]. The Obj-C variety had one advantage that it required methods with multiple parameters to be named. And that was better than the anonymous parameters of most other languages back in the day. But Swift as a syntax that encourages named parameters without mandating them. Which is the best of both worlds.