How to reference an array from another function Objective-C

46 Views Asked by At

I have declared array in SomeClass.h It's a global variable isn't it?

@property (nonnull, nonatomic, retain) NSMutableArray *additional_tabs;

Below I declared 2 function where I use this array.

- (id _Nullable)initFromJSON:(NSDictionary *_Nullable)dictionary;

- (void)moreTabs:(NSMutableArray *_Nullable)a;

Below is if-statement I used inside initFromJSON function.

if ([Tools isNonullValueForKey:[dictionary valueForKey:@"additional_tabs"]]) {
        _additional_tabs = [NSMutableArray new]; //really I need them?
        _additional_tabs = [dictionary valueForKey:@"additional_tabs"];
            
            NSLog(@"additionalTabCount (initJSON) = %lu", [_additional_tabs count]);
            
            for (int i = 0; i < [_additional_tabs count]; i++) {
                 
                 if ([Tools isNonullValueForKey:[_additional_tabs valueForKey:@"_id"]]) {
                     _additional_tab_id = [[_additional_tabs valueForKey:@"_id"] objectAtIndex:i];
                 }
                     
                 if ([Tools isNonullValueForKey:[_additional_tabs valueForKey:@"names"]]) {
                     NSDictionary *dic = [[_additional_tabs valueForKey:@"names"] objectAtIndex:i];
                     _en_additional_tab_name = [dic valueForKey:@"en"];
                     _pl_additional_tab_name = [dic valueForKey:@"pl"];
                 }
                     
                 if ([Tools isNonullValueForKey:[_additional_tabs valueForKey:@"url"]]) {
                     _additional_tab_url = [[_additional_tabs valueForKey:@"url"] objectAtIndex:i];
                 }
                
                NSLog(@"%@ %d %@ %@ %@ %@", @"pos", i,  @"id: ", _additional_tab_id, @"url: ", _additional_tab_url);
            }
        }

And this [_additional_tabs count] have 17. But in function moreTabs:

    NSLog(@"additional tabs count: %lu",[_additional_tabs count]);
    for (int i = 1; i < [_additional_tabs count]; i++) {
    [a addObject:[[VCTab alloc] initWithIdAndTypeAndUrl:[[_additional_tabs valueForKey:@"_id"] objectAtIndex:i] :VCTabAdditional :[[_additional_tabs valueForKey:@"url"] objectAtIndex:i]]];
    }
}

return [_additional_tabs count] with nil... look like is different array or cleared?

I would be very grateful for your help :) All the best

0

There are 0 best solutions below