2

我有 12 张图像,我想检查它们是否都是不可见的。所以我必须检查它们是否被隐藏或者它们是否只是没有内容。我决定将所有布尔值相加,而不是检查每一个是否被隐藏或者是否没有内容,
例如[__ isHidden]将返回 1 或 0,这是一个数字,因此我们可以在数学方程式中使用它!
然后取这些布尔值的总和并检查它们是否大于或等于 12,这意味着至少有 12 张照片被隐藏,没有内容(*没有照片被隐藏并且没有内容的情况)

这是条件语句:

if (((drawImage12.image == nil) + (drawImage11.image == nil) + (drawImage10.image == nil) + (drawImage9.image == nil) + (drawImage8.image == nil) + (drawImage7.image == nil) + (drawImage6.image == nil) + (drawImage5.image == nil) + (drawImage4.image == nil) + (drawImage3.image == nil) + (drawImage2.image == nil) + (drawImage1.image == nil) + ([drawImage12 isHidden]) + ([drawImage11 isHidden]) + ([drawImage10 isHidden]) + ([drawImage9 isHidden]) + ([drawImage8 isHidden]) + ([drawImage7 isHidden]) + ([drawImage6 isHidden]) + ([drawImage5 isHidden]) + ([drawImage4 isHidden]) + ([drawImage3 isHidden]) + ([drawImage2 isHidden]) + ([drawImage1 isHidden])) >= 12) {
   //do stuff here
}

我的问题是:有没有更简单的方法来编写这种类似 RegEx 的作品,也许使用对象的tag属性?

喜欢:(这不是真正的代码,只是一个例子)
if (((drawImage[1-12].image == nil) + (drawImage[1-12].hidden == YES)) >= 12) { 翻译成英文就像“如果所有 12 个图像都是空白或隐藏”

4

1 回答 1

1

它并不短,但也许你更喜欢这个:

NSArray *drawImages = [NSArray arrayWithObjects:drawImage12, drawImage11, drawImage10, etc, nil];
bool thereIsAProblem = NO;

for (UIImage *drawImage drawImages) {
    if (!drawImage.image || drawImage.hidden) {
      thereIsAProblem = true;
      break;
    }
}

if (!thereIsAProblem) {
  //do stuff here
}

如果您更喜欢采用累加值路线,您可以随时执行以下操作:

for (UIImage *drawImage drawImages) {
  if (!drawImage.image || drawImage.hidden) {
    someVariable += 1;
  }
}

if (someVariable == 12) {
  //do stuff
}

注意:以上代码未经测试

于 2013-05-09T07:59:05.373 回答