2014-02-14 20 views
2

NSKeyed存檔警告我越來越多的日誌警告,這樣,當我把我的應用程序到測試保存/恢復狀態時,使用home鍵的背景。採用獨特的鍵

2014-02-13 20:13:08.275 FlowTrak[16777:60b] *** NSKeyedArchiver warning: replacing existing 
value for key 'UIStateRestorationViewControllerStoryboard'; probable duplication of encoding 
keys in class hierarchy 

該應用程序運行在設備上的罰款,和所有的狀態恢復/保存的作品,因爲它應該,但我很想擺脫這些警告。沒有一噸約這些警告信息在那裏,但是從我讀過,我應該去的好,只要我使用的唯一密鑰,我保留每個UI項目。

上整理了這一點任何想法?謝謝。

這裏是我的代碼:

// Restoration of text fields 
-(void)encodeRestorableStateWithCoder:(NSCoder *)coder 
{ 
    // start level text 
    [coder encodeObject:_startLevel.text forKey:@"startText"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // stop level text 
    [coder encodeObject:_stopLevel.text forKey:@"stopText"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // start time label 
    [coder encodeObject:_startTimeLabel.text forKey:@"startTimeText"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // stop time label 
    [coder encodeObject:_stopTimeLabel.text forKey:@"stopTimeText"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // minute rate label 
    [coder encodeObject:_minuteRateLabel.text forKey:@"minuteRateText"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // start segmented control 
    [coder encodeInteger:self.startFractionControl.selectedSegmentIndex forKey:@"startIndex"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // stop segmented control 
    [coder encodeInteger:self.stopFractionControl.selectedSegmentIndex forKey:@"stopIndex"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // start button state 
    [coder encodeBool:self.start.enabled forKey:@"startButtonState"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // stop button state 
    [coder encodeBool:self.stop.enabled forKey:@"stopButtonState"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // calculate button state 
    [coder encodeBool:self.calculate.enabled forKey:@"calculateButtonState"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // resume button state 
    [coder encodeBool:self.resume.enabled forKey:@"resumeButtonState"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // tank selector segmented control 
    [coder encodeInteger:self.tankControl.selectedSegmentIndex forKey:@"tankIndex"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // start time for equation 
    [coder encodeDouble:startTime forKey:@"startTimeEquation"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // stop time for equation 
    [coder encodeDouble:stopTime forKey:@"stopTimeEquation"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // start segmented control for equation 
    [coder encodeObject:startFractions forKey:@"startFractionsEquation"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // stop segmented control for equation 
    [coder encodeObject:stopFractions forKey:@"stopFractionsEquation"]; 
    [super encodeRestorableStateWithCoder:coder]; 

    // tank selector segmented control for equation 
    [coder encodeBool:bigTank forKey:@"bigTankEquation"]; 
    [super encodeRestorableStateWithCoder:coder]; 


} 

-(void)decodeRestorableStateWithCoder:(NSCoder *)coder 
{ 
    // start level text 
    _startLevel.text = [coder decodeObjectForKey:@"startText"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // stop level text 
    _stopLevel.text = [coder decodeObjectForKey:@"stopText"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // start time label 
    _startTimeLabel.text = [coder decodeObjectForKey:@"startTimeText"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // stop time label 
    _stopTimeLabel.text = [coder decodeObjectForKey:@"stopTimeText"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // minute rate label 
    _minuteRateLabel.text = [coder decodeObjectForKey:@"minuteRateText"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // start segmented control 
    self.startFractionControl.selectedSegmentIndex = [coder decodeIntegerForKey:@"startIndex"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // stop segmented control 
    self.stopFractionControl.selectedSegmentIndex = [coder decodeIntegerForKey:@"stopIndex"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // start button state 
    self.start.enabled = [coder decodeBoolForKey:@"startButtonState"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // stop button state 
    self.stop.enabled = [coder decodeBoolForKey:@"stopButtonState"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // calculate button state 
    self.calculate.enabled = [coder decodeBoolForKey:@"calculateButtonState"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // resume button state 
    self.resume.enabled = [coder decodeBoolForKey:@"resumeButtonState"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // tank selector segmented control 
    self.tankControl.selectedSegmentIndex = [coder decodeIntegerForKey:@"tankIndex"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // start time for equation 
    startTime = [coder decodeDoubleForKey:@"startTimeEquation"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // stop time for equation 
    stopTime = [coder decodeDoubleForKey:@"stopTimeEquation"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // start segmented control for equation 
    startFractions = [coder decodeObjectForKey:@"startFractionsEquation"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // stop segmented control for equation 
    stopFractions = [coder decodeObjectForKey:@"stopFractionsEquation"]; 
    [super decodeRestorableStateWithCoder:coder]; 

    // calculate button state 
    bigTank = [coder decodeBoolForKey:@"bigTankEquation"]; 
    [super decodeRestorableStateWithCoder:coder]; 

} 

回答

1

你爲什麼叫超級實施多次?只調用一次!