I’m creating several arrays in the app for example:
NSString *ItemsA[91];
int GroupRep[11];
double TaxR[16];
short InputT[200];
BOOL tmpEx[20];
and need these structures to be available thru the app until end of the app.
my questions are:
i. do I need to alloc the array of NSString explicitly or is it ok to initialize each array cell in this manner : ItemsA[10] = @”use option1″ for example.
ii. do i need to release or dealloc any of the above arrays
iii. i understand if i didn’t specifically used alloc then the iOS will automatically do the retain/release thing. if so what about :
UITapGestureRecognizer *gestur1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dispR)];
similarly I’m creating a class:
myClass=[[PieClass alloc]initWithFrame:CGRectMake(1+ipX, ipY, 320, rView.frame.size.height)];
...
[myClass release]
and this class allocating his own stuff. do i need to release each one or just the whole class as above is enough.
Thanks
In general, don’t use language arrays to store objects. Use
NSMutableArrayinstances; they is relatively little overhead (probably immeasurable) and it is much more natural.You’ll also want to store any values for display in files that can be localized. Thus, you’ll want to load said files and, again, storing ’em in NSArray is much easier. There is extensive documentation on the subject at developer.apple.com.
Finally, that looks like your app data. Thus, you probably really want to have a proper model layer to manage said data. Someday, you’ll probably want to refactor the app to pull said data from a server and having a proper model layer will help you do so.
Note that you can typically hang the model — the data management stuff — off your application delegate. Or you can reach it via a singleton somewhere.
This is a bit of a high level answer with a goal to try to direct you to a path that is a bit more in line with expected patterns.