2012-04-11 8 views
0

Ich speichere die Daten in der externen Klassendatei, aber erhält einen Fehler beim Speichern des Bool Wertes als Parameter. Unten finden Sie den Quellcode .savefile.hWie man die Parameter in den Wörterbuchwerten einstellt

-(void) saveDecreasedActivity:(NSInteger) bathing 
       meal:(NSInteger) meal withTitle:(NSString *)title independentItem:(BOOL)timeItem; 

     { 
      NSMutableDictionary *lDataObj = [[NSMutableDictionary alloc] init]; 

      [lDataDict setValue:lSeqCounter forKey:@"seqCounter"]; 

      [lDataObj setValue:timeItem forKey:@"independentItem"]; 
     } 

und ich habe die Daten in andere Klasse speichern

[saver saveDecreasedActivity:[self.bathingControl selectedSegmentIndex] 
           meal:[self.mealControl selectedSegmentIndex] withTitle:lTitle independentItem:YES]; 

Es

zeigte
timeItem is incompatible integer to pointer conversion sending "BOOL" (aka singned char) to parameter of type id 

Vielen Dank im Voraus

Antwort

2

Sie können keine rohen Typen (Ganzzahlen, Boolesche Werte usw.) speichern. in einer NSDcitionary, die eine Sammlung von Schlüssel-Wert-Paaren ist (see docs).

In Ihrem Fall können Sie:

[NSNumber numberWithBool: timeItem]; 

in:

[lDataObj setValue:[NSNumber numberWithBool: timeItem] forKey:@"independentItem"]; 
1

Sie können nur speichern Objekte in Wörterbücher und BOOL ist eine Art, so dass Sie es so zu verpacken haben :

[dictionary setValue:[NSNumber numberWithBool:aBool] forKey:@"yourKey"]; 

und es wie folgt ab:

BOOL aBool = [[dictionary objectForKey:@"yourKey"] boolValue]; 

Überprüfen Sie die NSNumber Klassenreferenz für weitere Informationen.

Verwandte Themen