When we should use global variable and when class variable and why?
I hope your experiences and ideas to share with us who are novice in this platform.
Example:
Let, i need to trace timestamp and position of touch events (eg. touch start, end) on a layer. I can trace it using global variable or class variable of the class which implements touch event. What should I do?
Regards,
-Sadat
This isn’t a problem specific to Objective C or the iPad family of devices.
Variables should have the minimum “visibility” and “duration” that they need, and no more.
You would have to come up with some very convincing reasons for trying to get a global variable through our code review processes. They’re almost always able to be replaced with something a little more appropriate.
In response to your comment:
There’s a nice snippet over here which details how to do class level variables. These are normal C file-scoped variables so they’re not visible outside the file but you only get one for the class, not one for every object that you instantiate.
In that sense, they have the advantages of a global (minimal storage and the value is still accessible for reading) without the disadvantages (polluting the global name-space and making it possible for code outside of the class to change it).
And, if it doesn’t need to be read outside of the file, just don’t provide the
initCountmethod.