
Also, storyboards are really powerful and can save you a lot of time once you learn them.
I'm mostly a Rails/Ruby dev as well but am doing more iOS. My recommended resources are:
1. BIG Nerd Ranch book (best book IMO) http://www.amazon.com/iOS-Programming-Ranch-Guide-Guides/dp/...
2. Programming iOS (5|6) by Neuburg (either version is fine) http://www.amazon.com/Programming-iOS-6-Matt-Neuburg/dp/1449...
3. Ray Wenderlich blog and tutorials bundle (worth the money) http://www.raywenderlich.com/store/ios-5-and-ios-6-by-tutori... His storyboard tutorials are great
4. NSScreencast (think RailsCasts for iOS. Not as thorough yet, but worth the money) http://nsscreencast.com/
5. Do a week-long, in person class such as http://pragmaticstudio.com/ios if you can afford it
---
Other than that, I really haven't run into issues I couldn't figure out via Stackoverflow or Apple's docs/samples.
The real issue for me was wrapping my head around the frameworks and understanding how it differs from Rails/web world. You might find it helpful to just take a week off and bury yourself in it. Try and pick a very simple (but useful/functional) app you can build and ship in a couple weeks. Give yourself a deadline and do it.
2. A Talent For War, Jack McDevitt
3. Endymion, Dan Simmons
4. Programming iOS 9 ( 50% ), Matt Neuburg
5. Yes Please, Amy Poehler
6. The Nature of the Beast, Louise Penny
__weak MyClass* wself = self;
self->observer = [[NSNotificationCenter defaultCenter]
addObserverForName:@"heyho"
object:nil queue:nil
usingBlock:^(NSNotification *n) {
MyClass *sself = wself;
if (sself) {
NSLog(@"%@", sself);
}
}];
Do other people agree this fixes the problem?Also, it's my understanding closures only cause retain cycles if the method taking the block copies the block, per the docs: "When a block is copied, it creates strong references to object variables used within the block." Therefore this dance is not necessary for e.g. [NSURLConnection sendAsynchronousRequest:queue:completionHandler:]. Is that correct?