我有一个简单的if语句,涉及4个UIImageViews,我想检测所有4个nil触发的东西。它工作正常,但我收到一条警告说“表达结果未使用”。
if (shapeImage1, shapeImage2, shapeImage3, shapeImage4 == nil){
NSLog(@"Hello, friend.");
}
答案 0 :(得分:4)
逗号运算符丢弃第一个结果(意味着除了最后一个实际测试之外的所有结果),因此您需要测试每个实例:
if (!shapeImage1 && !shapeImage2 && !shapeImage3 && !shapeImage4) {
NSLog(@"Hello, friend.");
}
答案 1 :(得分: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.");
}
答案 2 :(得分:0)
我不是目标C的专家,但为什么不这样做:
if (shapeImage1 == nil && shapeImage2 == nil && shapeImage3 == nil && shapeImage4 == nil)
{
NSLog(@"Hello, friend.");
}
答案 3 :(得分:0)
这只是检查UIImageView
shapeImage4 是否为零。如果你想检查它们是否都是零,请尝试:
if((shapeImage1 == nil) && (shapeImage2 == nil) && (shapeImage3 == nil) && (shapeImage4 == nil)){
NSLog(@"Hello, friend.");
}
希望有所帮助!