내 view
의 subviews
(전체 하위 뷰 포함)을 반복합니다."또는 파이프"(||) 버그?
이렇게하기 전에 새로운 int
을 카운터로 사용할 것을 선언합니다.
!=
) 같지 않으면 I 검사있어
:이
int count = 0;
for (UIView *subview in self.view.subviews) {
count = count + 1;
if (count != 5) {
NSLog(@"Hello");
} else {
NSLog(@"World");
}
}
가 NSLog(@"World");
는 카운트가 "5"(예상만큼 같을 때 불려) :이 문제에 이제
Hello Hello Hello Hello World Hello Hello Hello Hello Hello Hello Hello
||
), 호출되지 않습니다
NSLog(@"World");
(
if
)가 검증되지 않습니다.
int count = 0;
for (UIView *subview in self.view.subviews) {
count = count + 1;
if (count != 5 || count != 6) {
NSLog(@"Hello");
} else {
NSLog(@"World");
}
}
Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello
if
확인되지 왜 제 질문은?
"같지 않음"(!=
)을 "동일 함"(==
)으로 변경하면 문제가 해결된다는 점에 유의해야합니다.
버그입니까? 놓친 것이 있습니까?
항상 '카운트'가 5와 같지 않거나 6이 아닌 경우입니다. 둘 중 하나가 될 수도 있지만 동시에 둘 다 될 수는 없습니다. 조건문을 항상 true로 설정했습니다. –
@KenThomases하지만 파이프 라인 ('||')을 사용하여 5 또는 6인지 확인하고 있습니다. 만약 내가 둘 다 어디에 있는지 확인하려면, 나는'&&'를 사용했을 것이다. 또한 ""같지 않음 "('! =')을"같음 "('==')으로 변경하면 문제가 해결됩니다." –
@AleksanderAzizi 이것은 [De Morgan의 법칙] (http://en.wikipedia.org/wiki/De_Morgan's_laws)의 사례입니다. –