objective c - Remove array elements issue in iOS? -


i have strange issue in ios.i have 2 classes aviewcontroller & bviewcontroller. in aviewcontroller having array

@property nsmutablearray *array_one; 

i passing data 1 view controller in prepareforsegue method.

 if([self.array_one count]>0)         {              viewbcontroller.array_two=self.array_one;          } 

then bviewcontroller passing data this

-(void)viewwilldisappear:(bool)animated {       int j;       [self.delegate setdata:self.array_two];  } 

then in method doing work

- (void)setdata:(nsmutablearray *)data {     nsstring *string=[nsstring stringwithformat:@"%lu",(long)[data count]];    [self.array_one removeallobjects];     int i;      for(i=0;i<[string intvalue];i++)     {         user *u=[data objectatindex:i];         [self.array_one addobject:u];     }    } 

now happened if go view 1 controller 2 times in second time if add line [self.array_one removeallobjects]; data array empty.i don't know why? please guide me

you use 2 different methods of passing data.

viewbcontroller.array_two=self.array_one;

this assigns array_two pointer same array_one. means both point same array.

then, when call [self.delegate setdata:self.array_two], first thing happens call [self.array_one removeallobjects]. pointing same array array_two, empty array.

if data manifestly same @ times between 2 classes, 1 solution assign array both view controllers once, after changes in 1 reflected in other.

if not, need copy array new object when assign second view controller.


Comments

Popular posts from this blog

html - Outlook 2010 Anchor (url/address/link) -

javascript - Why does running this loop 9 times take 100x longer than running it 8 times? -

Getting gateway time-out Rails app with Nginx + Puma running on Digital Ocean -