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

そして、私は他のクラスにデータを保存しました

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

見せていた

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

前もって感謝します

4

2 に答える 2

2

NSDcitionaryキーと値のペアのコレクションである に生の型 (整数、ブール値など) を格納することはできません( docs を参照)。

あなたの場合、次を使用できます。

[NSNumber numberWithBool: timeItem];

の:

[lDataObj setValue:[NSNumber numberWithBool: timeItem] forKey:@"independentItem"]; 
于 2012-04-11T14:51:20.983 に答える
1

オブジェクトは辞書にのみ格納でき、BOOL は型であるため、次のようにラップする必要があります。

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

次のように取得します。

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

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

于 2012-04-11T14:51:46.953 に答える