0

NSMutableArrayを他のNSMutableArray、インスタンスivarとして設定された可変配列に追加しようとしていますが、常に配列arrayPlayoffを空にしました。私が検出した他のことは、添付のメソッドでデバッグするときに、「ローカル」オプションを選択しても、ローカル変数がデバッガー変数セクションに表示されないことです。

-(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   
4

1 に答える 1

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配列に追加した後は使用していないため、他の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];

        }


    }


    [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];

}
于 2012-05-22T18:58:23.747 に答える