Je travaille sur une vue qui sélectionne une image (graphique) basée sur l'entrée de l'utilisateur à travers un sélecteur dépendant qui utilise un fichier plist qui contient trois tableaux contenant environ 40 chaînes chacun.fuite de mémoire avec sélecteur? (iphone App)
Environ 50% du temps lorsque je lance l'application, il s'arrête juste immédiatement, mais les autres fois qu'il fonctionne, il fonctionnera bien jusqu'à ce que je commence à défiler dans le sélecteur où il se bloque après environ 4 secondes. Il ne montrera pas non plus l'un des noms de tableau sur le composant de gauche.
J'ai essayé d'exécuter l'application avec l'analyseur pour vérifier une fuite de mémoire, mais cela ne fonctionnera pas du tout si j'utilise l'analyseur en mode fuite de mémoire. Le code est presque directement tiré d'un livre.
Voici le code correspondant:
-(void) viewDidLoad {
[super viewDidLoad];
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"US High Index.jpg"]];
self.imageView = tempImageView;
NSString *string = @"US High Index";
self.chartNameLabel.text = string;
[string release];
[tempImageView release];
scrollView.contentSize = CGSizeMake(imageView.frame.size.width , imageView.frame.size.height);
scrollView.maximumZoomScale = 4.0;
scrollView.minimumZoomScale = .05;
scrollView.clipsToBounds = YES;
scrollView.delegate = self;
[scrollView addSubview:imageView];
NSBundle *bundle = [NSBundle mainBundle];
NSString *plistPath = [bundle pathForResource:@"ChartTypes" ofType:@"plist"];
NSDictionary *dictionary = [[NSDictionary alloc]initWithContentsOfFile:plistPath];
self.chartsDictionary = dictionary;
NSArray *components = [self.chartsDictionary allKeys];
self.chartTypes = components;
NSString *selectedChartType = [self.chartTypes objectAtIndex:0];
NSArray *array = [chartsDictionary objectForKey:selectedChartType];
self.charts = array;
[dictionary release];
[array release];
[selectedChartType release];
[plistPath release];
[bundle release];
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 2;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component {
if (component == kChartTypeComponent)
return [self.chartTypes count];
return [self.charts count];
}
#pragma mark Picker delegate methods
-(NSString *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row
forComponent:(NSInteger)component {
if (component == kChartTypeComponent)
return [self.chartTypes objectAtIndex:row];
return [self.charts objectAtIndex:row];
}
-(void)pickerView:(UIPickerView *)pickerView
didSelectRow: (NSInteger)row
inComponent:(NSInteger)component {
if (component == kChartTypeComponent) {
NSString *selectedChartType = [self.chartTypes objectAtIndex:row];
NSArray *array = [chartsDictionary objectForKey:selectedChartType];
self.charts = array;
[picker selectRow: 0 inComponent:kChartComponent animated: YES];
[picker reloadComponent:kChartComponent];
}
}
thx, on dirait que ça l'a fait – Brodie