【问题标题】:incompatible integer to pointer conversion "int" to parameter type of "id"不兼容的整数到指针转换“int”到“id”的参数类型
【发布时间】:2014-02-02 08:15:32
【问题描述】:
 - (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 用户对象的“活动”键字段分配一个布尔值,但由于某种原因,当尝试将用户 [@“活动”] 设置为 TRUE 布尔值时,我收到错误“不兼容的整数”将指针转换“int”到“id”的参数类型。这仅在将其设置为 TRUE 时发生,将其设置为 FALSE 不会导致错误。此外,将其设置为 0 很好,但 1 错误。我不知道为什么我试图分配哪个布尔值很重要。任何想法将不胜感激。谢谢

【问题讨论】:

    标签: ios objective-c xcode


    【解决方案1】:

    您不能将 BOOL 添加到(实际上是字典)对象中。用户对象期望接收另一个对象,因此您的 BOOL 应该被包装到 NSNumber 实例中:

    user[@"active"] = @YES; // NSNumber literal syntax
    

    或者

    user[@"active"] = [NSNumber numberWithBOOL:YES];
    

    这适用于是(真)和否(假)的情况。


    另外,您不应该将_statusFailed 添加为子视图。调用其show 方法来呈现警报视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多