Ask HN: Good iOS Interview Questions
These are the questions I've been asking, but I feel they are too beginner/intermediate. Need some more advanced questions to find the top talent.
* Explain what ARC is and how it works? * Why does your app crash when the device is low on memory? * What is a retain-cycle and how do you find and fix them? * What is fast enumeration? * How many bytes can we send to apple push notification server? * Describe the flow of push notifications? * What is the difference between retain & assign? * Explain the difference between a category and a protocol? * What is Delegation in iOS? * Assume that your app is running in the foreground but is currently not receiving events. In which state it would be in? * What are some distribution options for iOS apps? * What's the process for publishing to the App Store? * What does it mean to call objective-c a messaging language?
I appreciate your feedback!
7 comments
[ 2.6 ms ] story [ 23.0 ms ] thread- Explain the relationship between a UIView and a CALayer
- When it comes to animation, what are the differences between animatable properties on a UIView and a CALayer.
- How would you go about creating an UIImage and using Core Graphics primitives outside of a drawRect method.
- When initializing ivars in a UIViewController being used in a XIB or Storyboard, which method would you want to override?
- Walk through the flow of a UIVIewController. What methods get called and in which order?
- How would you check to see if an object implements a protocol?
- What is KVO? Give an example of how to use it.
Explain the interior pointer problem, when it applies, and what you can do about it.
Describe what happens in objc_msgSend, and give two reasons why it's implemented in assembly rather than C.
How would you implement NSMutableSet?
Explain the proper uses of (__bridge), (__bridge_retained) and (__bridge_transfer) casts.
Explain all the important differences between direct ivar access and access through a property, under MRC and under ARC.
When should you use +/-conformsToProtocol: instead of +/-respondsToSelector:?
How would you implement toll-free bridging?