- Explain how the memory management works on iOS
- What is a weak qualifier and when should it be used
- Explain the MVC pattern
- Explain the MVVM pattern
- What are the property qualifiers that define the memory management behaviour?
- Describe ARC
- What’s the main problem with ARC?
- Explain what is dependency injection
- Is a block an object?
- Describe the behavior of objc_msgSend?
- Delegation is a common pattern on iOS and historically well-known, give an example
- When are the objects deallocated?
- Why do we use the * for the objects in Objective-C?
- Describe yourself using JSON
- Do you know how autolayout works under the hood?
Last active
May 31, 2016 01:46
-
-
Save rpbaltazar/ae5fa788c4d9d7128fc0f8aad659bf1a to your computer and use it in GitHub Desktop.
Questions captured from: http://albertodebortoli.com/blog/2016/05/28/best-ios-interview-epicfails/ and attempted answers
Question 8
Dependency injection means giving an object its instance variables.
Fishing Examples
Let's imagine that you want to go fishing:
- Without dependency injection, you need to take care of everything yourself. You need to find a boat, to buy a fishing rod, to look for bait, etc. It's possible, of course, but it puts a lot of responsibility on you. In software terms, it means that you have to perform a lookup for all these things.
- With dependency injection, someone else takes care of all the preparation and makes the required equipment available to you. You will receive ("be injected") the boat, the fishing rod and the bait - all ready to use.
Why using it?
It can make testing lots easier
- Without Dependency Injection
Application needs Foo (e.g. a controller), so:
Application creates Foo
Application calls Foo
Foo needs Bar (e.g. a service), so:
Foo creates Bar
Foo calls Bar
Bar needs Bim (a service, a repository, …), so:
Bar creates Bim
Bar does something
- With Dependency Injection
Application needs Foo, which needs Bar, which needs Bim, so:
Application creates Bim
Application creates Bar and gives it Bim
Application creates Foo and gives it Bar
Application calls Foo
Foo calls Bar
Bar does something
http://www.jamesshore.com/Blog/Dependency-Injection-Demystified.html
http://stackoverflow.com/questions/130794/what-is-dependency-injection
Question 9
Blocks are Objective-C objects, which means they can be added to collections like NSArray or NSDictionary.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Notes for Question 3 & 4:
MVVM vs MVC
In MVVM:
In MVC:
-Request first comes to the controller.
-Controller binds the model with the view.
-Logic is stored in the controller.