2012-05-22 68 views
0

我想添加NSMutableArray到其他NSMutableArray,一个可变数组设置为实例ivar,但我总是得到数组arrayPlayoff为空。我发现的其他事情是,在调试附加方法时,即使选择“本地”选项,局部变量也不会显示在调试器变量部分中。问题添加NSMutablearray到其他NSMutablearray?

-(void)loadGamesPlayoffs{ 

    NSMutableArray *eli1 = [[NSMutableArray alloc] init]; 

    NSMutableArray *eli2 =[[NSMutableArray alloc] init]; 

    NSMutableArray *eli3 = [[NSMutableArray alloc] init]; 

    NSMutableArray *eli4 = [[NSMutableArray alloc] init]; 

    for (NSDictionary *eliminatoria in copaReyArray){ 

     int eli = [[eliminatoria valueForKey:@"eliminatoria"]integerValue]; 

     NSLog(@"eli %d", eli); 

     if (eli==1){ 

      [eli1 addObject:eliminatoria]; 

     } else if (eli==2){ 

      [eli2 addObject:eliminatoria]; 

     }else if (eli==3){ 

      [eli3 addObject:eliminatoria]; 

     } else if (eli==4){ 

      [eli4 addObject:eliminatoria]; 

     } 


    } 


    [arrayPlayOff addObject:eli1]; 

    [arrayPlayOff addObject:eli2]; 

    [arrayPlayOff addObject:eli3]; 

    [arrayPlayOff addObject:eli4]; 


    } 

many thanks 
+0

的[无法项目添加到一个NSMutableArray伊娃]可能重复(http://stackoverflow.com/questions/7125326/cannot-add-items-to-an-nsmutablearray-ivar),http://stackoverflow.com/questions/1827058/nsmutablearray-addobject-not-working,http: //sackoverflow.com/questions/3683761/nsmutablearray-addobject-not-affecting-count –

+2

似乎你不是初始化'arrayPlayOff'这是造成问题? – rishi

+0

伙计们,非常感谢!你可以发布你的答案投票吗?我错误地认为,伊娃是没有必要初始化..... – theomen

回答

1

如果arrayPlayOff是一个实例变量,你可以使用属性,你应该.H看起来是这样的:

#import <UIKit/UIKit.h> 
@interface YourClassViewController : UIViewController{ 
    NSMutableArray *arrayPlayOff; 
    //Some other variables 
} 

@property (nonatomic, retain) NSMutableArray *arrayPlayOff; 

//Some other methods 

@end 

然后在您的.m文件,你可以使用:

@implementation YourClassViewController 

@synthesize arrayPlayOff; 

- (NSMutableArray *)arrayPlayOff{ 
    if(!arrayPlayOff){ 
    arrayPlayOff = [[NSMutableArray alloc] init]; 
    } 
    return arrayPlayOff; 
} 

//Your other methods 

//Overwrite the dealloc function so you don't have any memory leaks 
- (void)dealloc{ 
    [arrayPlayOff release]; 
    [super dealloc]; 
} 

@end 

现在你可以访问你的变量为

self.arrayPlayOff

而这样一来你就可以100%肯定,你的变量总是初始化。

你的方法可能是这样的(你也应该将它们添加到arrayPlayOff阵列后释放你的其他NSMutableArrays,因为你不使用):

-(void)loadGamesPlayoffs{ 

    NSMutableArray *eli1 = [[NSMutableArray alloc] init]; 

    NSMutableArray *eli2 =[[NSMutableArray alloc] init]; 

    NSMutableArray *eli3 = [[NSMutableArray alloc] init]; 

    NSMutableArray *eli4 = [[NSMutableArray alloc] init]; 

    for (NSDictionary *eliminatoria in copaReyArray){ 

     int eli = [[eliminatoria valueForKey:@"eliminatoria"]integerValue]; 

     NSLog(@"eli %d", eli); 

     if (eli==1){ 

      [eli1 addObject:eliminatoria]; 

     } else if (eli==2){ 

      [eli2 addObject:eliminatoria]; 

     }else if (eli==3){ 

      [eli3 addObject:eliminatoria]; 

     } else if (eli==4){ 

      [eli4 addObject:eliminatoria]; 

     } 


    } 


    [self.arrayPlayOff addObject:eli1]; 

    [self.arrayPlayOff addObject:eli2]; 

    [self.arrayPlayOff addObject:eli3]; 

    [self.arrayPlayOff addObject:eli4]; 

    //Releasing the NSMutableArrays 
    [eli1 release]; 
    [eli2 release]; 
    [eli3 release]; 
    [eli4 release]; 

}