2012-04-11 12 views
0

外部クラスファイルにデータを保存していますが、Bool値 をパラメータとして保存しているときにエラーが発生しています。 は、以下のソースコード .savefile.h辞書値にパラメータを設定する方法

-(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"]; 
     } 

であると私はそれが事前に

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

感謝を見せていた他のクラス

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

の中のデータを保存してい

答えて

2

生の型(整数、ブール値など)は保存できません。 NSDcitionaryにあり、これはキーと値のペアの集合です(see docs)。あなたのケースでは

、あなたが使用することができますで

[NSNumber numberWithBool: timeItem]; 

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

あなたは辞書で唯一のストアオブジェクトをすることができ、そしてBOOLタイプですので、あなたはこのようにそれをラップする必要があります:

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

とこのようにそれを取得:

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

詳細については、NSNumberクラスリファレンスを確認してください。

関連する問題