You’re likely to be asked not only about features and methods of iOS development, but also how do you think it works? Why do you think Apple did this?
Maybe the interviewer didn’t do it himself. After all, apple engineers don’t know why they design things the way they do.
But as a candidate, these questions are the best way to distance the gap: you don’t have to recreate apple’s mechanics in C, but you can share your insights. So, you better have a plan for this one.
1. Usage practice
In general, you will be asked how to implement a module, which apis you have used, and explain their usage.
-
What was the structure of your previous projects?
-
How do you model data?
-
How do you implement dictionary to model?
-
What animation effects have you used?
-
How do you handle image loading?
-
How have you used some third-party libraries?
2. Think about insights
However, others like to ask you about the various advanced features of OC syntax, such as Runtime dynamics, and a method you usually use. If I let you write your own implementation, how do you think it is implemented?
-
In addition to the App life cycle, the ViewController life cycle do you know? How is its life cycle operated and controlled? How do you think these operations are implemented? What’s the difference between it and the life cycle of the App?
-
Do you use copy a lot? When will it be used? Do you know anything about other features of Copy, such as reference counting and memory management? If I asked you to write a copy method, how do you think copy is implemented?
-
Do you know anything about runtime? What is the runtime? How do you think these features are implemented at runtime? How are these dynamic features represented at compile and run? How have you taken advantage of runtime features in your programming?
-
Do you know anything about multithreaded programming? What about multithreading? What is the difference between threads and processes? Why multithreading? How many processes and threads can each be opened? How do you think the thread opening operation in GCD is implemented? And thread switching how do you think it works?
-
How much do you know about memory management? I know you mentioned ARC and strong, retain and so on, but how do you think MRCS before ARC implemented memory management? How does ARC implement memory management? Also, how do you think these methods of manipulating memory in OC are implemented?
-
Ok, you mentioned FMDB, what classes have you used? What did you do? How did you use it in your projects? What do you think is the difference between it and CoreData? Can you talk about some other frameworks for data models? How do they store data? What are the similarities and differences when implementing data storage?
3. The last words
These questions were asked by one of PA’s interviewers, who was said to be a job-hopper from Baidu. Maybe, baidu department out of the interviewer really like to ask the bottom.
For answers to these questions, especially those about free play and independent opinion, you are welcome to post your opinions in the comments section after reviewing the relevant knowledge yourself.