NSMutableArray Warning的局部声明



我在这个方法中添加一个对象到NSMutableArray:

 CarouselObject *objectModel = [[CarouselObject alloc]init];
        objectModel.name = [[d objectForKey:@"place"] objectForKey:@"name"];
        objectModel.address = [[d objectForKey:@"place"] objectForKey:@"address"];

        //cview = [[CaroView alloc] initWithFrame:CGRectMake(x, 0, 320, 170)];
        //cview.backgroundColor = [UIColor greenColor];
        //cview.images.image = [UIImage imageNamed:@"banner.jpg"];
        if ([photo count] > 0) {
            NSLog(@"%@",[[photo objectAtIndex:0] objectForKey:@"place_photo_reference"]);
            objectModel.imageURL = [NSString stringWithFormat:@"http://www.getnearest.com/api2/google_image.php?photoreference=%@&type=photo", [[photo objectAtIndex:0] objectForKey:@"place_photo_reference"]];
  //                [cview.images setImageWithURL:[NSURL URLWithString:objectModel.imageURL ] placeholderImage:[UIImage imageNamed:@"banner.jpg"]];
 //                cview.images.contentMode = UIViewContentModeRedraw;
//                cview.name.text = [[d valueForKey:@"place"] objectForKey:@"name"];
 //                cview.address.text = [[d valueForKey:@"place"] objectForKey:@"address"];
        } else if ([photo count] == 0) {
           objectModel.imageURL =  @"";
        }
        [carouselArray addObject:objectModel];
       // [responseScroll addSubview:cview];
       // x += 320;
    }
    [self  updateUI:carouselArray];
    //responseScroll.contentSize = CGSizeMake(x, 170);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];
}

我需要这个方法中的数组:

   -(void)updateUI:carouselArray {
NSMutableArray *array;
array = carouselArray;
//carouselArray = [[NSMutableArray alloc] init];
CGFloat x =0;
cview = [[CaroView alloc] initWithFrame:CGRectMake(x, 0, 320, 170)];
  }

我得到一个警告告诉我"carouselArray的局部声明隐藏实例变量"在每一行我访问updateUI:中的carouselArray。我在viewDidLoad中初始化了NSMutableArray,但我看不出为什么我有这个问题。

看起来您有一个名为carouselArray的实例变量,并且您在updateUI中有一个名称相同的参数。

改变:

   -(void)updateUI:carouselArray {
NSMutableArray *array;
array = carouselArray;
//carouselArray = [[NSMutableArray alloc] init];
CGFloat x =0;
cview = [[CaroView alloc] initWithFrame:CGRectMake(x, 0, 320, 170)];
}

:

-(void)updateUI:myArray {
NSMutableArray *array;
array = myArray;
//myArray = [[NSMutableArray alloc] init];
CGFloat x =0;
cview = [[CaroView alloc] initWithFrame:CGRectMake(x, 0, 320, 170)];
}

我得到警告说" carouselArray的局部声明隐藏实例变量"

在这个方法的某个地方,你可以这样做:

NSMutableArray *carouselArray = ...

你有一个名为carouselArray的实例变量的事实使编译器发出警告。


Try

-(void)updateUI:(NSMutableArray*)myCarouselArray {

array = myCarouselArray;

从那里开始。

最新更新