如何在字典值中设置参数

时间:2012-04-11 14:46:48

标签: iphone

我将数据保存在外部类文件中,但在保存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

提前致谢

2 个答案:

答案 0 :(得分:2)

您不能在NSDcitionary中存储原始类型(整数,布尔值等),这是一组键值对(see docs)。

在您的情况下,您可以使用:

[NSNumber numberWithBool: timeItem];

在:

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

答案 1 :(得分:1)

你只能在字典中存储对象,而BOOL是一种类型,所以你必须像这样包装:

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

并像这样检索它:

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

检查NSNumber类参考以获取更多信息。