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