Управление памятью при обновлении приложения до iOS 5 - PullRequest
1 голос
/ 18 марта 2012

У меня есть небольшой конвертер iOS с UIPickerView (три столбца) и кнопка, позволяющая поменять местами первый и третий столбцы (я поменяю местами два соответствующих массива UILabels)

В симуляторе iphone для iOS4.3,Все в порядке.Когда я использую симулятор iOS 5.1, возникает проблема с отображением (была также проблема с отображением iVars с LLDB, который вместо этого исчезает с использованием GDB):

После замены первого и третьего массива 6 UILabels активны впервый столбец UIPickerView (array: pickerColumn1), но три текстовые метки не отображаются ...

Объявление трех массивов для управления тремя столбцами UIPickerView:

// Файл: MesureViewController.h

@interface MesureViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource> {
IBOutlet UIPickerView *pickerView;

NSArray *pickerColumn1;
NSArray *pickerColumn2;
NSArray *pickerColumn3;

// (...)
}
@property (nonatomic, retain) NSArray *pickerColumn1;
@property (nonatomic, retain) NSArray *pickerColumn2;
@property (nonatomic, retain) NSArray *pickerColumn3;

// Файл: MesureViewController.m

@implementation MesureViewController
@synthesize pickerColumn1;
@synthesize pickerColumn2;
@synthesize pickerColumn3;

Инициализация массивов UiPickerView (в методе, вызываемом viewDidLoad):

NSArray *contenants=[[NSArray alloc] initWithObjects:c_cafe, c_dessert, c_soupe, tasse, gtasse, bol, v_liqueur,v_moutarde, v_grand, nil];
NSArray *ingredients=[[NSArray alloc] initWithObjects: farine, sucre, beurre, marga, huile, creme, rape, fecule, semoule, f_sec_pile, sel, cereale, fruitfrais, miel, siropErable, cacao, cafe, riz, liquide , nil];
NSArray *mesures=[[NSArray alloc] initWithObjects: kilo, gramme, litre, dl, cl, ml, nil];
self.pickerColumn1=contenants; // 9 objects
self.pickerColumn2=ingredients; // 19 objects
self.pickerColumn3=mesures; // 6 objects
[contenants release];
[ingredients release];
[mesures release];

Код, используемый для замены первого и третьего массива

- (IBAction) swapUnits { // swap first and third arrays

NSArray *tmp=[self.pickerColumn1 retain];
self.pickerColumn1=self.pickerColumn3;
self.pickerColumn3=tmp;

[tmp release];
// (...)
}

Есть идеи?Спасибо!

Денис

...