Monday, March 18, 2013

iOS app development for C/C++/C# Developers : Defining default constructor in Objective-C

In this post I am going to share how we do whats called "constructors" in C++ or C# and for my C-only fellows, object initializers or <insert some term here>.

As I mentioned in my previous blog post that Objective-C has no such thing as constructors. We use the native non-instance method or what we call "static" method to allocate a new instance. That method is called alloc.


 MyClass* myObj = [MyClass alloc]

The above code just creates an object in a fashion similar to having no constructors defined in our C++ or C# class.

But consider the following code in C++.


 class Circle
  {
    private int m_radius;
    public Circle()
     {
       m_radius = 10; // C++ folks can also use the "initializer list" for this assignment
     }
  }

If we want to implement the same logic in Objective-C, we are going to have to define something what most Obj-C developers call "initializers"

Initializers are nothing but methods that may take arguments and meant to be called right after allocation of a new object. So we could do the following in Objective-C. Lets do a "default constructor" in this post. I will make another post for parameter-ized constructor


Circle.h file
 #import <foundation/foundation.h>

@interface Circle : NSObject {
  NSInteger m_radius;
}

 - (id) init;
@end

Circle.m file
 @implementation Circle
  - (id) init
  {
    self = [super init]; // calling base class's init in this case NSObject's init

    if (self) { // checking to see if an object has been returned by NSObject's init
            self.m_radius = 10; // set the default value to 10
      }
   return self; // In order for it to act like a constructor, it should return the object
  }
 @end

And this is how we create an object using the initializer defined above
 Circle* circleObj = [[Circle alloc] init];

By the way, 'super' is a Java term for base class too. Somebody gets a title of 'copy-cat' here.

That's all folks for this post. Please let me know your comments in the comment box below if you have any.

32 comments:

  1. The following pages teach you how to build a simple Android app. You’ll learn how to create a "Hello World" project with Android Studio and run it. Then, you'll create a new interface for the app that takes some user input and opens a second screen in the app. Best More learn about apps Apps Design and Development Company its guide a further about this services and gives you traning as well.

    ReplyDelete
  2. Wow i can say that this is another great article as expected of this blog.
    IOS Application Development Pakistan

    ReplyDelete
  3. This post is really very interesting and the programming part is very informative. Thank you so much for sharing this post. Visit here:  Rajendra Geda

    ReplyDelete
  4. This website and I conceive this internet site is really informative ! geniusupdates

    ReplyDelete
  5. If you're interested in outsourcing product development, I think this piece of content will help you find a product design and development company. for your next project.

    ReplyDelete
  6. I admire this article for the well-researched content and excellent wording. I got so involved in this material that I couldn’t stop reading. I am impressed with your work and skill. Thank you so much.
    android development company in chennai

    ReplyDelete
  7. I admire this blog for really good contents and highly informative blog. This blog is useful for who are seeking the outsourced products. Mobile app Development

    ReplyDelete
  8. Undertaking apps are mission-basic and intended to satisfy a particular exceptionally centered errand. Thusly, to be fruitful, https://iphoneappdevelopmentcompany.com/ organizations need to begin by characterizing the issue to be explained working with the end clients and different partners.

    ReplyDelete
  9. Thanks for sharing this blog with us. Get the best developers delivering custom & mobile application development services from app development Denver

    ReplyDelete
  10. The article was up to the point and described the information very effectively. Thanks to blog author for wonderful and informative post.
    IOS Development pakistan

    ReplyDelete
  11. This comment has been removed by the author.

    ReplyDelete
  12. I am really happy to say it’s an interesting post to read . I learn new information from your blog.
    Hybrid App Development Company in USA

    ReplyDelete
  13. bachelor developer software company
    hello brother's your bachelor developer software company provide high qualty software provider ricently create a school menegment system provide a very low bujet for school's with a androide application.

    SEO
    hello brother's your software company provide a high quality seo websites ranking on page and off page.

    graphic design
    hello brother's our software company provide graphic designing service by bachelor developer.

    software company in hyderabad
    software company in pakistan

    hello brother's your bachelor developer software company provide high qualty software provider ricently create a school menegment system provide a very low bujet for school's with a androide application.
    Web design company

    bachelor developer software company provide high quality software and websites and more services.
    cheap website design pakistan

    software house in pakistan

    software house in sindh

    web development company pakistan

    software house in latifabad

    ReplyDelete
  14. Thanks for sharing this quality information about app development. I really enjoyed reading and knowing about it. And i will surely share this URL with my friends. Mobile App Development Service Provider Australia

    ReplyDelete
  15. And if you pay close attention those copies are pirated. It is more clear in case of newly released movies. You will find that the copy they are displaying is taped by a camera in a movie theatre! PinkFour

    ReplyDelete
  16. Thanks for sharing such an amazing blog that helped me to understand the basic points of IOS app development. You can also hire professional developers such as NOTOSolutions to get your work done.

    ReplyDelete
  17. Great post I would like to thank you for the efforts you have made in writing this interesting and knowledgeable article. Thank you a lot! and if you need Graphic Design Company then contact us!

    ReplyDelete
  18. This comment has been removed by the author.

    ReplyDelete
  19. Very nicely explained. A2zfame.com is offering you the best quality of creative website development online at the affordable prices. You can visit on mobile application maintenance in USA to get more details.

    ReplyDelete
  20. QuellxCode is an extremely experienced software house in Islamabad which provides a wide array of social apps, productivity apps, games, and e-commerce apps for brands around the world. In the bunch of software houses in Pakistan we uniquely focus on effective design, cutting-edge technology, and cost-effectiveness throughout our development process for brands looking to leverage mobile technology. If you’re looking for a software house in Islamabad, Software house in Bahria town or best software house in Pakistan, Quell X Code is all set to serve you with nothing but the best!

    ReplyDelete
  21. This comment has been removed by the author.

    ReplyDelete
  22. Apps Geyser is a free specialist organization, which help you to change over your application and profit through it. It has more than 118,602,408 introduced application, more than 260,193 made application and more than 3,610,134,404 promotions served.
    https://appcloner.app
    https://appcloner.net

    ReplyDelete
  23. This post is really useful and helpful to know more about the things which you have shared. I appreciate you for such a great amount of information. I assure this would be beneficial for many people. app development companies in USA

    ReplyDelete
  24. I admire this article for the well-researched content and excellent wording. I got so involved in this material that I couldn’t stop reading. I am impressed with your work and skill. Thank you so much. ios app developers

    ReplyDelete
  25. Good piece of information. Really appreciate it. I also know one more platform where I read about Mobile App development which is Vkreate.in and it helped me in finding a complete solution for my website.

    ReplyDelete
  26. Thanks 3monthinstallmentloans.net for taking the time to discuss about easy loans for bad credit in Chandler, AZ

    ReplyDelete
  27. You have shared a nice article about the app development. Your service is very interesting and useful. I liked it. If anyone looking to app development service, then visit Custom App development Houston

    ReplyDelete
  28. I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article. seo consultant

    ReplyDelete