People are different, so it's not obvious that what applies to me applies to you. I can tell you what I know kills my enthusiasm for pretty much anything, though: no learning. To just keep applying something I've mastered, over and over again, like a language and a framework (let's say Objective C and Cocoa) will wear me down fast after a few iterations. Mastery is boring.
The only solution that works for me is to become a noob again by switching to something else. An obvious option which you may already have tried could be Swift. But maybe you need a more radical change of scenery, one which does not center on coding at all. It could still involve coding in a supporting role (playing to your strengths does not hurt) but be primarily about something else, like machine learning or virtual reality. Or it could be something else entirely. The world won't go under, and your life won't end, if you decide that you want to do something else entirely for a few years or decades.