【问题标题】:objective-c if statement客观-c if 语句
【发布时间】:2023-03-09 01:40:01
【问题描述】:

所以这可能真的很简单,但由于某种原因我无法弄清楚。当我运行下面的代码时,我无法让它进入if 语句,即使当我进入xcode 中的调试器控制台并执行po [resultObject valueForKey:@"type"] 时它返回0。我究竟做错了什么?感谢您的帮助!

NSManagedObject *resultObject = [qResult objectAtIndex:i];

if (([resultObject valueForKey:@"type"])== 0) {
    //do something
}

【问题讨论】:

    标签: iphone objective-c xcode if-statement


    【解决方案1】:

    valueForKey: 的结果始终是一个对象——唯一等于 0 的对象是 nil。在数值的情况下,它将是一个 NSNumber。无论如何,我想你想问[[resultObject valueForKey:@"type"] intValue]

    【讨论】:

    • 谢谢!这非常有效!我知道这很简单。
    【解决方案2】:

    您可以尝试将 NSManagedObject 转换为 int(如果它实际上是这样的话......)

    你也不需要在 [ ] 周围加上额外的括号

    NSManagedObject *resultObject = [qResult objectAtIndex:i];
    
    if ((int)[resultObject valueForKey:@"type"] == 0) {
        //do something
    }
    

    【讨论】:

    • 这只会检查对象是否为 nil 并且本质上等同于原始示例。 If 不会检查对象的值是否为 0。
    猜你喜欢
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 2015-11-27
    • 2011-03-24
    • 1970-01-01
    • 2015-07-24
    相关资源
    最近更新 更多