As someone who's fluent in Objective-C and learning Swift, the truth can be simplified to this:
If you want to get a job, NOW, learn Objective-C. Even Google is still hiring iOS Engineers primarily with Objective-C as a framework. And for big companies in general, you have to understand that iOS isn't the only thing they're developing and it'll be a LOT easier for them to import any internal libraries they have that were written in C into multiple projects if they u se Objective-C.
Most private contracting "design studios" are primarily hiring Objective-C because their lead developers and CTO's are cut from an older cloth and a client wouldn't be able to tell the difference between Swift and Objective-C anyway, so stick to what they know.
The only companies that are hiring strictly in Swift, are companies that are newly starting their iOS platform and looking for a lead/senior developer to lead the charge for them. If you are "learning" mobile development, that would probably be the worst job you could apply to and coincidentally a disaster for you to accept. Even a junior level developer with a year of experience would drown in that level of responsibility.
If your goal is to become a developer on your own or be ready for the future, and you plan on publishing your own apps for the next year or so, then learn Swift.
Right now, almost all of the introductory "learn iOS development from
scratch" resources are written in Swift. Learning as a beginner in Objective-C requires dating your resources back to iOS 7. And I'll be honest with you, those resources are getting ancient. A lot of changes have taken place and learning from scratch on Objective-C will require you to learn deprecated code, Google for the updated code, but now you have an internal conflict of information because you spent hours reading a chapter about some method that changed completely.
I think that's a waste of energy.
So if you're a beginner, I can simply say, learn Swift because there's more recent beginner learning resources. If you're a seasoned developer in another language looking to add a professional skill to your set so you can apply for more responsibilities or even gun for an iOS position to leave your current language/IDE in, then pick up Objective-C.
[doublepost=1454096516][/doublepost]
My current opinion of Swift is that it is STILL not ready for prime time yet. Some basic 101 things still aren't working properly yet. I was starting to jump on the Swift bandwagon but now I'm hesitant as I got more familiar with the language.
e.g. Want to find the index of an object within an array of structs? Can't do it as is. You need to add the equatable extension to the struct class. I spent hours trying to figure out WHY I can't use the indexOf() method on the array. Maybe they wanted it this way, but there was ZERO indication of what was wrong, it gave some unrelated error that made no sense. This, in my opinion is something that should have been considered in 1.0, people use this all the time. Note: This only happens with pure structs, not a class of NSObject.
e.g. 2 You have an array of 10 items and want grab the items 7-9 (since it starts at 0). In Objective-C you can simply do something like NSArray *newArray = [oldArray subarrayWithinRange:NSRange: blah blah]; Works fine and as expected. In Swift? No. You get something called an ArraySlice which you can't assign to a new array. You have create a new array and typecast it to the ArraySlice before you can't use it as expected. Now maybe this done on purpose to give the dev TOTAL control but I doubt it. Most developers just want to grab objects 7-9 and create a new array. Again, the error was not obvious and took a lot of tinkering to finally figure out. Should have been 1.0 release.
This is basic 101 stuff Apple. You are trying to convince developers that Swift is the greatest thing and to drop Objective-C but Objective-C and other languages work as expected.
I only have one issue with this:
A lot of documentation and tutorials nowadays don't give a flying beagle about Objective-C. This is heart breaking for me because learning new methods and implementations as a junior developer is getting to a point where Google doesn't yield me any relevant information.
This is even worse for beginners.
I can't think of a specific example, but there's a lot of iOS 9 stuff that changed dramatically from iOS 8 and more so from iOS 7. When you search for some of those specific changes in implementation, you get a lot of Swift examples and it's very hard to find the Objective-C one. I wish there would be like a "call to arms" for Objective-C current implementations where people can write articles on implementing popular new Swift tutorials in Objective-C. It would help me a LOT and would make it a lot easier to continue to tell people to learn Objective-C as newbies.
For seasoned developers, I recommend Objective-C. Tried and true.
For newbies, telling them to learn Objective-C is sending them down a path that hasn't been maintained or updated as much as Swift in the last year. Even Big Nerd Ranch more or less gave up on Objective-C for their camp and books which really REALLY sucks because their book is the reason I have a job. Even Stephen Kochan gave up on Objective-C.