2012-10-11 17 views
11

Mi sembra di avere un UIDatePicker che perde. Ho notato perdite di memoria per l'impostazione di datePickerMode per mostrare la data e l'ora. Ma sto solo cercando di visualizzare la data. Sono abbastanza certo che si tratta di una perdita di struttura perché quando commento alcune assegnazioni di proprietà UIDatePicker, le perdite vanno via. Questo codice perdite 1 oggetto CGColor, e 1 oggetto UIDeviceRGBColor:UIDatePicker perde

datePicker = [[UIDatePicker alloc] initWithFrame:[self detailViewRect]]; 


datePicker.datePickerMode = UIDatePickerModeDate; //leaks CGColor when setting this 
datePicker.hidden = NO; 
datePicker.timeZone = [NSTimeZone systemTimeZone]; //leaks UIDeviceRGBColor 
datePicker.maximumDate = [NSDate date];//leaks UIDeviceRGBColor 
datePicker.autoresizingMask = UIViewAutoresizingFlexibleWidth; 

Commentando le linee strumenti rilevata come offendere, ottengo perdite:

datePicker = [[UIDatePicker alloc] initWithFrame:[self detailViewRect]]; 

//datePicker.datePickerMode = UIDatePickerModeDate; //leaks CGColor when setting this 
datePicker.hidden = NO; 
//datePicker.timeZone = [NSTimeZone systemTimeZone]; //leaks UIDeviceRGBColor 
//datePicker.maximumDate = [NSDate date];//leaks UIDeviceRGBColor 
datePicker.autoresizingMask = UIViewAutoresizingFlexibleWidth; 

Senza almeno data modalità impostata, l'UIDatePicker è senza valore. Qualcuno ha una soluzione?

+1

Hai controllato la perdita sul dispositivo? O solo sul simulatore? A volte il simulatore ha un bug di perdita di memoria che non esiste sul dispositivo. – barley

+0

Stai usando ARC? – Kevin

+0

Per quanto riguarda la soluzione alternativa, quanto è grave la perdita? –

risposta

2

Questo approccio ha funzionato per me:

Creare il DatePicker nel XI ter invece che l'approccio programmatico. Quindi, in Impostazioni Attributi, imposta Modalità su Data.

+0

Suppongo che questo significhi aver avuto il problema prima; e che hai risolto il problema facendo questo. In tal caso, in che ambiente lavoravi? E cosa hai provato che ha causato il problema in precedenza? – stephen

+0

Stava costruendo per iPad iOS6. Xcode 4.5.1 con iOS6.0. Inizialmente, ho creato il DatePicker in modo programmato, ovvero nessun file xib, quindi ho impostato la modalità in questo modo: [_datePicker setDatePickerMode: UIDatePickerModeDate]; Ho una perdita di memoria quando controllo gli strumenti. Ho reimplementato il selettore di date con uno xib e, invece di impostare la modalità come prima, l'ho impostato nello xib. Quando l'ho controllato in Strumenti non c'erano perdite. – yoninja

+1

Anche io posso confermare che se si impostano questi attributi in IB (invece che a livello di programmazione), 'UIDatePicker' non mostra una perdita in Strumenti. Tuttavia, il 'UIDatePicker' perde se si impostano detti attributi in un secondo momento tramite codice (anche se 'UIDatePicker' viene creato in IB). Questo è chiaramente una perdita nel codice framework e, sfortunatamente, fino a quando Apple non lo risolve, non c'è una buona soluzione alternativa, oltre ad accettare che stia per perdere ...:/ –