0

我有一个简单的 if 语句,它涉及 4 个 UIImageViews 我想检测所有 4 个什么时候都为 nil 来触发某些东西。它按原样工作得很好,但我收到一条警告说“未使用表达式结果”。

if (shapeImage1, shapeImage2, shapeImage3, shapeImage4 == nil){   
    NSLog(@"Hello, friend.");    
}
4

4 回答 4

4

逗号运算符会丢弃第一个结果(意味着除最后一个之外的所有结果都已实际测试),因此您需要测试每个实例:

if (!shapeImage1 && !shapeImage2 && !shapeImage3 && !shapeImage4) {
    NSLog(@"Hello, friend.");
}
于 2013-08-25T00:54:59.103 回答
1

当您在 C(或 Objective-C)中使用逗号时,您正在制作四种不同的表达式。在这种情况下,语句中仅实际使用了其中一个值。if您想要的是使用||(OR) 运算符,如下所示:

if (shapeImage1 == nil || shapeImage2 == nil || shapeImage3 == nil || shapeImage4 == nil) {
    NSLog(@"Hello, friend.");
}

您可以进一步优化:

if (!shapeImage1 || !shapeImage2 || !shapeImage3 || !shapeImage4) {
    NSLog(@"Hello, friend.");
}
于 2013-08-25T00:56:52.290 回答
0

我不是目标 C 的专家,但为什么不这样做:

if (shapeImage1 == nil && shapeImage2 == nil && shapeImage3 == nil && shapeImage4 == nil)
{

    NSLog(@"Hello, friend.");

}
于 2013-08-25T00:55:31.940 回答
0

这只是检查UIImageView shapeImage4是否为零。如果要检查它们是否全部为零,请尝试:

if((shapeImage1 == nil) && (shapeImage2 == nil) && (shapeImage3 == nil) && (shapeImage4 == nil)){
    NSLog(@"Hello, friend.");
}

希望有帮助!

于 2013-08-25T00:55:37.723 回答