我将数据保存在外部类文件中,但在保存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
提前致谢
答案 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类参考以获取更多信息。