Thursday, September 26, 2013

What's new in iOS 7?

iOS 7 Major release of iOS. It has come up with a lot of things for users and the developers. UI has been completely redesigned and also come with a new animation system for creating games. 

I will list what's new in iOS 7.

  • What's new in User Interface

    • UI Redesign - UI has been completely redesigning and throughout the system, the focus has been on the functionality and making sure that things are easier than before. Introduction of the Control Center, Navigation around the settings menus with the swipe, Updated Notification Center, Accessibility updates, and Siri has just become more helpful than before.  

Common Objective C coding errors

I am going to introduce the common coding errors made while programming in Objecive C language.

1. Declaring the const char * strings. Yes this the common coding error while programming, You almost never want to declare a const char * string, e.g. see the below line of code.

self.selectedLabel.text = [NSString stringWithFormat:@"Selected : %d", self.selectedCount];

Object Model of Objective C

Object Model of objective C is derived from SmallTalk. It has its basis in SmallTalk. Few things to know before understanding the Object Model.

What is Object?

Think of Object as a real world entity. What is a real world entity? It is something which have some data in its possession and perform different kind of functions. e.g. Think of a Tap as an object. It perform different kind of functions like start water flow, stop water flow, control the rate at which water should flow. Objects hold the data and the methods it perform.

Tuesday, September 24, 2013

IBAction and IBOutlet keywords

(IBAction)selectedCard:(UIButton *)sender {

IBAction is nothing but typedef void. Xcode puts this to keep track that this not a random method that returns void but an Action method that connects view to the controller.

@property (weak, nonatomic) IBOutlet UILabel *selecedLabel;

IBOutlet is typedef of void. Xcode puts this just to keep track that it not some random @property, but it is an Outlet i.e. connection to the view.

Monday, September 23, 2013

Application Delegate

Every iOS application must contain an application delegate object. Application Delegate class is responsible for handling all kind of events happen in the application. The root class is UIApplication. 

We do not subclass the UIApplication class to customize the handing of different kind of events, rather we provide an AppDelegate class that implements UIApplicationDelegate protocol. We provide this delegate class to the UIApplicaiton class which will sendd notifications to AppDelegate class for each of the application level event.

Wednesday, September 11, 2013

Difference between Weak and Strong keywords

Strong means you want to keep control over the lifetime of the object. If an object is marked as strong mean object remains in the heap until you point that object strongly. If you send the object to nil only than it will be collected by the Garbage collection.

Weak means you don't want to keep control over the lifetime of the object. A weak reference does not extend the lifetime of the object it points to, and automatically becomes nil when there are no strong references to the object. If no one is pointing the object strongly than the object will be collected by the heap.

you can find more details about ARC(Automatic Reference Counting) Click Here...

Tuesday, September 10, 2013

What is "id" in Objective C


'id' is a typedef in objective C. This means "Pointer to an Object". This Object can be any object of Objective C.

typedef struct objc_class *Class;
typedef struct objc_object {
    Class isa;
} *id;

typedef struct objc_selector    *SEL;    
typedef id          (*IMP)(id, SEL, ...); 

Monday, September 9, 2013

Pointers in Objective C

A pointer references a location in the memory. In simple words it keeps the address of the memory where actual data is stored. Obtaining the content of the pointer is called deferencing the pointer.
Pointers to data significantly improve performance for repetitive operations such as traversing strings, lookup
tables, control tables and tree structures. In particular, it is often much cheaper in time and space to copy and dereference pointers than it is to copy and access the data to which the pointers point. you can learn more about pointers here.

Sunday, September 8, 2013

Introduction to Objective C

Learning any kind of language starts with learning basics of the programming language. If one needs to understand than I would say he must understand the basics keywords of C language like printf, unsignedint, const char, malloc, alloc, etc. It would be of great help if one can go through few chapters of c language before going into objective C.

If you are programming in Java, .Net or any other High Level Language, than I would say you better tighten your seat belts because once you will see the objective c in active you are gonna be on a roller coaster ride. The syntax, semantics, object oriented approach etc are implemented in a sophisticated way.