Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a NSMutable Array which can access from different view controllers

Im quite new to iphone development, I want to create a mutable array which can access and populate from different view controllers. How can I do it? If you can please give me a sample code

like image 334
smartsanja Avatar asked Aug 22 '26 15:08

smartsanja


2 Answers

In MVC, you have views, controllers and models. You should push as much down as possible. Multiple views and controllers can operate on the same model that controls the data and business logic.

In your case, you have a simple set of shared data - a mutable array.

I would suggest create a class that contains that mutable array and exposes methods. A common pattern is for that class to be a singleton.

So, the multiple controllers would do.

MyModel *model = [MyModel sharedInstance];

Then both controllers can operate on it.

Here's a good article on the topic: http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html

singleton from apple: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html#//apple_ref/doc/uid/TP40002974-CH4-SW32

Hope that helps.

like image 189
bryanmac Avatar answered Aug 24 '26 04:08

bryanmac


In most cases its not needed nor helpfull to use global variables. If you have to use them the easiest way is to put the array in your AppDelegate.

You can access the Array (named array in AppDelegate here) with :

YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];

NSArray *aArray= [appDelegate array];
like image 45
Amandir Avatar answered Aug 24 '26 05:08

Amandir



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!