- (void) changeState
{
if ([_buttonChangeState.title isEqual: @"Active"])
{
PFUser *user = [PFUser currentUser];
user[@"active"] = FALSE;
user[@"party"] = @"";
[user saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
{
if (error)
{
_statusFailed = [[UIAlertView alloc]initWithTitle:@"" message:@"Status Change Error, Try Again" delegate:self cancelButtonTitle:@"Retry" otherButtonTitles:@"Close", nil];
_statusFailed.cancelButtonIndex = 0;
[self.view addSubview:_statusFailed];
}
else
{
[_buttonChangeState setTitle:@"Taking A Break"];
}
}];
}
if ([_buttonChangeState.title isEqual:@"Taking A Break"])
{
PFUser *user = [PFUser currentUser];
user[@"active"] = TRUE;
[user saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
{
if(error)
{
[self.view addSubview:_statusFailed];
}
}];
}
}
我试图将Parse用户对象的“active”键字段分配为bool值,但由于某种原因,当尝试将用户[@“active”]设置为TRUE布尔值时,我收到错误“不兼容的整数指针转换“int”到参数类型“id”“。只有在将其设置为TRUE时才会发生这种情况,将其设置为FALSE会导致无错误。此外,将其设置为0很好,但1错误。我无法理解为什么我试图分配哪个布尔值。任何想法将不胜感激。感谢
答案 0 :(得分:5)
您无法将BOOL添加到(实际字典)对象中。用户对象期望接收另一个对象,因此您的BOOL应该被包装到NSNumber
实例中:
user[@"active"] = @YES; // NSNumber literal syntax
或者
user[@"active"] = [NSNumber numberWithBOOL:YES];
这适用于YES(true)和NO(false)两种情况。
此外,您不应该添加_statusFailed
作为子视图。调用其show
方法来显示警报视图。