{"id":334,"date":"2013-10-11T17:43:56","date_gmt":"2013-10-11T15:43:56","guid":{"rendered":"http:\/\/andras.palfi.hu\/?p=334"},"modified":"2013-10-11T17:43:56","modified_gmt":"2013-10-11T15:43:56","slug":"iosobjc-interview-questions","status":"publish","type":"post","link":"https:\/\/andras.palfi.hu\/?p=334","title":{"rendered":"iOS\/ObjC Interview Questions"},"content":{"rendered":"<h2>General programming questions<\/h2>\n<ul>\n<li>OOP basics: what is a class, interface, instance variable, methods, static (class) methods vs instance methods. Header vs implementation files<\/li>\n<li>What is a process, thread<\/li>\n<li><a href=\"http:\/\/andras.palfi.hu\/design-patterns-and-principles\/\">design patterns and principles<\/a><\/li>\n<li>blackbox vs whitebox testing differences? unit testing? integration testing? regression testing?<\/li>\n<li>what is continuous integration?<\/li>\n<li>difference between stack\/heap<\/li>\n<\/ul>\n<h2>General ObjC<\/h2>\n<p>[expand title=&#8221;What do you need to be able to develop for iOS&#8221; tag=&#8221;div&#8221;] MAC OS X, XCode, Developer Profile &#8230;[\/expand]<br \/>\n[expand title=&#8221;Define basic OOP concepts and the keywords in ObjC&#8221; tag=&#8221;div&#8221;] interface, implementation, inheritance, property, protocol, etc&#8230; [\/expand]<br \/>\n[expand title=&#8221;Application lifecycle; What kind of states an application can have? Which general methods are called?&#8221; tag=&#8221;div&#8221;] States: not running, inactive, active, background or suspended. There are methods and notifications to handle the transitions.<\/p>\n<ul>\n<li>application:willFinishLaunchingWithOptions:<\/li>\n<li>application:didFinishLaunchingWithOptions&gt;:<\/li>\n<li>applicationDidBecomeActive:<\/li>\n<li>applicationWillResignActive:<\/li>\n<li>applicationDidEnterBackground:<\/li>\n<li>applicationWillEnterForeground:<\/li>\n<li>applicationWillTerminate:<\/li>\n<li>applicationDidFinishLaunching:<\/li>\n<\/ul>\n<p>[\/expand]<br \/>\n[expand title=&#8221;What is a property? How can you create one? What is the benefits to use properties?&#8221; tag=&#8221;div&#8221;] @property, (auto)synthesize; getter\/setter method (also send KVO notifications). Hides the iVars (safety and flexibility) [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;method visibility&#8221;] private\/public &#8211; no protected. anyone can call a private [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is a protocol? Protocol declaration and implementation, optional declaration&#8221;] [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to check an optional protocol method existence on an object? &#8220;] [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;+ and &#8211; methods&#8221;] class vs instance methods [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What about multiple class inheritance&#8221;] technically none &#8230; [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to add a method to a class (extend) without the source of the class and without recompiling the class&#8221;] Categories [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;what are categories?&#8221;] [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Difference between extensions () and (named) categories?&#8221;] [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Benefits of extension category?&#8221;] private property declaration, compile time method check. [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Can you re-declare a property in subclass or extension?&#8221;] YES. If you declare a property in one class as readonly, you can redeclare it as readwrite in a class extension, in a protocol, or in a subclass. [\/expand]<br \/>\n[expand title=&#8221;Limitations of- and problems with categories?&#8221;] Cannot override an existing method and call it in the extension method [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What are formal and informal protocols?&#8221;] Formal are the real protocols, informal are categories on NSObject (with optional methods) [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to declare protected-like methods (accessible only for some dedicated classes)?&#8221;] Separate header file with (named) category, and include it in other class [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is a designated initializer, what is the pattern for the initializers and why ( if (self = %{%super &#8230;%}% ) )&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Property modifiers and the meaning&#8221;]nonatomic\/atomic, assign\/retain\/copy\/readonly vs strong\/weak\/unsafe_unretained, getter=, setter=[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How can one object inform an other that something happened?&#8221;]only one (subscribing): target-action, delegate, block. Unlimited: notification[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is a delegate, how to create one, and use one&#8221;][\/expand]<br \/>\n[expand\u00a0tag=&#8221;div&#8221; \u00a0title=&#8221;When to create a delegate&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Delegate rule: how to handle ownership and why&#8221;]never retain! circular reference problem[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Delegate vs target\/action vs block vs NSNotification&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Problem with blocks usage&#8221;] recursive calls (on fail restart the method which expects the same block) problematic and only one &#8216;method&#8217; can be called &#8211; delegate can have more methods. Solution to recursive calls: put the method to a __block local variable, so it can call\/reference itself[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is a selector? How to call a selector?&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is the difference between the dot notation and using the square brackets&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is KVO &#8211; where\/how\/why to use &#8211; how does it work &#8211; how to implement properly a KVO compliant property&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is KVC &#8211; where\/how\/why to use&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is fast enumeration&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;check a class is compatible with a baseclass and a given class&#8221;]isKindOfClass, isMemberOfClass, isSubclassOfClass[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;root classes?&#8221;]NSObject, NSProxy, id [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;id type&#8221;]can be any object, but no native\/primitive type[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;how to make an object from a native\/primitive type (boxing)?&#8221;]NSNumber, NSValue[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How methods are called? When the exact pointer is turns out&#8221;]message sending, runtime[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is Notifications, NSNotificationCenter, local notification, push notification in general?&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What&#8217;s necessary for the localization&#8221;] Localization strings files, NSLocalizedString[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How can you support a language which is not supported by the OS?&#8221;]put to strings file and load from the specified table (NSBundle localizedStringForKey:value:table:)[\/expand]<br \/>\n[expand tag=&#8221;div&#8221;title=&#8221;Accessibility basics?&#8221;] AccessibilityLabel, accessibilityValue etc[\/expand]<br \/>\n[expand tag=&#8221;div&#8221;title=&#8221;What is very important with long operations for example downloading something&#8221;] Background thread not to block UI. Use queues instead of threads[\/expand]<\/p>\n<h2>Memory management<\/h2>\n<p>[expand tag=&#8221;div&#8221; title=&#8221;basic memory management topics: ownership&#8221;]retain\/release\/autorelease, ARC vs MRC[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;what is retainCount, when to use&#8221;]reference count to the object. never use (helps for debug)- cannot access in ARC[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;autorelease pool usage&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;what is a memory warning, how do we respond to it&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;ARC vs MRC&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Can you use a library in ARC which were written using MRC?&#8221;]yes[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;ARC bridging?&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Reflection? Introspection? is there anything in objc and cocoa?&#8221;]YES. Advanced: objc_* class_*, object_* methods[\/expand]<\/p>\n<h2>Threading<\/h2>\n<p>[expand tag=&#8221;div&#8221; title=&#8221;Threading possibilities &#8211; starting background tasks: nsthread vs nsoperationqueue vs GCD queues vs performselectorafterdelay&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is a deadlock, how can it happen?&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to make a code snippet thread safe?&#8221;]@synchronized[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How can you synchronize threads (and with timeout)?&#8221;] @synchronized, NSCondition[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;When and why to create thread (with one of the thread technics)?&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;When to start a real NSThread?&#8221;]Very rare &#8211; use alternate instead[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is the first thing to do on a thread and why?&#8221;]Create autorelease pool[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is GCD? Benefits, general behavior?&#8221;]OS handles threads &#8211; very optimal[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;When to use dispatch queues&#8221;]As often as possible when a thread necessary[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Main dispatch queue types: main, background, serial &#8211; when to use which and why&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Benefit of NSOperationQueues&#8221;] priorities, cancellations: but you have to implement cancellation, you can implement the same with the other solutions as well\u2026[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is a runloop, where it is very commonly used&#8221;]Timers, NSUrlConnection[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What happens when you create a block?&#8221;]created on the stack, copy moves to the heap. copies the context&#8217;s variables[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Can you modify a variable out of the scope of a block?&#8221;]YES, __block variables[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;difference between dispatch_sync and dispatch_async&#8221;][\/expand]<\/p>\n<h2>Networking<\/h2>\n<p>[expand tag=&#8221;div&#8221; title=&#8221;When to use NSUrlRequest download methods and when to use delegate implementation?&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What you should listen when download something from the internet&#8221;]NSURLConnection, NSRequest. Download in background. You should present in the UI: activity indicator in status bar or in separate view[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is the difference between synchronous and asynchronous requests&#8221;][\/expand]<\/p>\n<h2>UIKit<\/h2>\n<p>[expand tag=&#8221;div&#8221; title=&#8221;Base classes and general description&#8221;]UIResponder, UIView, UIControl[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How the event handling happens?&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Difference between UIWindow and UIView&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Can we have more UIWindows in iOS?&#8221;]Yes, but rare &#8211; UIAlertView is a separate window[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Difference between bounds, frame of a view&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What&#8217;s very important designing UIs (views)?&#8221;]different resolutions, horizontal-vertical orientation, iOS7 sucks[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Difference between points and pixels&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is the responder chain?&#8221;]becomeFirstResponder ??? routing of touch messages &#8211; hittest, views passes to viewcontrollers then window ???[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is IBOutlet and IBAction? How do you use them?&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Basic tableview how to: datasource and delegate implementation&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Drawbacks of UITableViews&#8221;]only vertical\u2026 ???[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Collection views&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Benefits of collections views&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is very important updating the UI in a multithreaded application? How can you do that?&#8221;]update only on main thread\/ main queue[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;what to do when the keyboard appears and hides some parts of the UI that are important &#8211; logic implementation&#8221;]scrollview and keyboard notification handling[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Why should we release the outlets in viewDidUnload in MRC? What about ARC?&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Difference in Xib\/storyboard vs nib?&#8221;]xib and storyboard are xml but nib is binary &#8211; resource compiling&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Animations?&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;view transitions?&#8221;]push, modal, custom, (embed? in segue)[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;how can we present new view controllers?&#8221;]modal vs push[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;tabbar vs toolbar vs navigationbar: when to use which, can you combine them?&#8221;][\/expand]<br \/>\n[expand\u00a0tag=&#8221;div&#8221; \u00a0title=&#8221;UI customization (possible ways to set color etc)&#8221;]use public properties, use appearance[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;UIAppearance basics, difference between setting through appearance proxy and instance&#8221;]<\/p>\n<ul>\n<li>appearance proxy: modifying a property on the proxy object=all instances gets the value;<\/li>\n<li>modifying a property on an instance: just the instance gets modified; now can change more than previously. UI_APPEARANCE_SELECTOR marks these properties.<\/li>\n<\/ul>\n<p>For example, to modify the bar tint color for all UINavigationBar instances: [[UINavigationBar appearance] setBarTintColor:myColor] VS &amp;#91(UINavigationBar *)aUINavigationBar setBarTintColor:myColor]<br \/>\n[\/expand]<\/p>\n<h2>CoreData<\/h2>\n<p>[expand tag=&#8221;div&#8221;\u00a0title=&#8221;what is CoreData and what do we use it for&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;is CoreData == sqlite or some wrapper?&#8221;]on iOS it supports binary database, SQLite, in memory &#8211; on MAC it supports xml as well[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;what types of stores does core data support&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is the minimum necessary classes and relationship between them?&#8221;]NSPersistentStore, NSPersitentStoreCoordinator, NSManagedObjectModel, NSManagedObjectContext[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Can the NSPersistentStoreCoordinator have more persistent stores?&#8221;]YES &#8211; but cannot handle if the same class is in different stores &#8211; can handle if separate or related classes are in different stores[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is a managed object context&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What about multi-threading and core data usage&#8221;]contexts aren&#8217;t thread safe ??? after iOS5?[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is an NSManagedObjectId&#8221;]unique id, shareable; we can save it for later if the application was stopped[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is lazy loading, how does this relate to core data, situations when this can be handy&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to read only a few attributes of an entity&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is a fetchedresultcontroller&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to synchronize contexts&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How could one simulate an NSManagedObject (dynamic properties)&#8221;][\/expand]<\/p>\n<h2>Tricky questions<\/h2>\n<p>[expand tag=&#8221;div&#8221; title=&#8221;What is an actual class in ObjectiveC&#8221;] struct &#8230; [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What is the isa member&#8221;]&#8230;[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to make a static library optional?&#8221;]runtime class and method checks &#8211; NSClassFromString, respondsToSelector etc[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to correctly implement a retaining setter property&#8221;]retain the parameter before release the old saved value[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to declare the properties to work the same in MRC and ARC?&#8221;] strong=retain, unsafe_unreatained=assign etc ???[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What happens if you add your just created object to a mutable array, and you release your object&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What happens with the objects if the array is released&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What happens if you remove the object from the array\/dict, and you try to use it&#8221;]Crash. you should get it first, retain, than remove from the array\/dict[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Garbage collection on iPhone&#8221;] &#8211; none, similar: ARC, (autoreleasepool)[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;The circular reference problem with delegates&#8221;]delegates being usually saved with assign rather then retain. Exception: NSURLConnection[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What happens when we invoke a method on a nil pointer?&#8221;]Nothing. Well known solution in ObjC[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What happens when we call a method on an object which doesn&#8217;t exists?&#8221;]Crash[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Does KVO works with iVars?&#8221;] NO. Why? observation messages is sent by the properties[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Does KVC works with iVars?&#8221;] YES. why?[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;When it is mandatory to synthesize properties&#8221;]if declared in protocols[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What to do in a situation when a class not necessarily implement a method from a protocol&#8221;]This could happen when the method is optional, check with respondsToSelector[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Difference between nil and Nil and NULL???&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How does proxy-ing work ???&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to call a method on an &#8216;unknown&#8217; typed object?&#8221;]performSelector vs objc_msgSend vs etc\u2026???[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to call a selector with more than 2 parameters?&#8221;] NSInvocation, or declare block instead if possible, or objc_msgSend, or simply use object as &#8216;id&#8217; and call the selector as simple method (creates warnings)[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to cancel a block?&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How NSOperation cancellation works?&#8221;]you have to implement in your code by listening the cancelled flag[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Can we\/should we invoke (public) instance methods in an initializer and the dealloc? what about properties?&#8221;]subclass can override (don&#8217;t know what will happen, properties fires KVC notifications=don&#8217;t know what happens when one listens)[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;NSCoding, NSKeyedArchiving&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;Can we use our own objects as key in a dictionary?&#8221;] No. What to do to solve the problem &#8211; implement NSCopying[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;The difference between a shallow and a deep copy&#8221;][\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;What can&#8217;t we put into an array or dictionary?&#8221;]nil, objects not implementing NSCopying[\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How can we put nil it into dictionary\/array?&#8221;] NSNull [\/expand]<br \/>\n[expand tag=&#8221;div&#8221; title=&#8221;How to get the current language of the device?&#8221;][NSLocale currentLocale] wrong it gives the Region!!!: use [NSLocale preferredLanguages][0];[\/expand]\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>General programming questions OOP basics: what is a class, interface, instance variable, methods, static (class) methods vs instance methods. Header vs implementation files What is a process, thread design patterns and principles blackbox vs whitebox testing differences? unit testing? integration testing? regression testing? what is continuous integration? difference between stack\/heap General ObjC [expand title=&#8221;What do [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"hide_page_title":"","footnotes":""},"categories":[3,4],"tags":[],"_links":{"self":[{"href":"https:\/\/andras.palfi.hu\/index.php?rest_route=\/wp\/v2\/posts\/334"}],"collection":[{"href":"https:\/\/andras.palfi.hu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/andras.palfi.hu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/andras.palfi.hu\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/andras.palfi.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=334"}],"version-history":[{"count":0,"href":"https:\/\/andras.palfi.hu\/index.php?rest_route=\/wp\/v2\/posts\/334\/revisions"}],"wp:attachment":[{"href":"https:\/\/andras.palfi.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/andras.palfi.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/andras.palfi.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}