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

您不能将原始类型(整数、布尔值等)存储在 anNSDcitionary中,它是键值对的集合(请参阅 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 回答