【问题标题】:iPhone SQLite table inconsistencyiPhone SQLite 表不一致
【发布时间】:2010-02-11 00:29:06
【问题描述】:

我有一个显示不同游戏模式得分的 sqlite 表。在其中一列中,除非用户达到最后的第 5 级,否则我不希望分数显示,但我也不希望它被记录为 0。我希望它就像从未玩过游戏一样。根本没有记录分数。这就是我所拥有的......

 if(appDelegate.easymediumhard == 2 && gameVarLevel == 5){

            if(gameVarLevel == 5){
            globalScore = timeSeconds;
            }
else if(gameVarLevel != 5){
    ????????????
    }

        }

现在我知道我需要 else if 语句,但我不知道它应该是什么。

【问题讨论】:

  • 我不明白。你为什么不把分数写到桌子上?
  • 事实上,你永远不会得到 else 语句。获得内部代码的要求是 gameVarLevel == 5。如果是这样,您将永远不会点击 ????????部分。
  • 我需要在完成第 5 级时将分数写入数据库,但如果未完成第 5 级则不需要
  • 马克所说的同上。我们需要更多的上下文。您可能想要做的是将对表的写入移动到 if 语句内部。
  • @NextRev:您显示的代码根本不会写入数据库。要么你忘记发布一些代码,要么你的问题已经解决了。

标签: ios iphone database sqlite sdk


【解决方案1】:

解决方案是将表写入移动到if 语句内。我会假设它现在会在之后的某个时间出现,但我不知道,因为你没有发布那部分。

编辑:

如果如您所说,您的写作位于程序的不同部分,那么您需要一个单独的变量来跟踪有效分数,即bool scoreValid,或者您需要将分数设置为您知道无效的值,例如 -1。

然后在写表的代码中,检查分数是否有效,如果有效才写。

例如,你的代码是这样的:

if(appDelegate.easymediumhard == 2 && gameVarLevel == 5){

       globalScore = timeSeconds;
       scoreValid = YES;

} else {

      scoreValid = NO;

}

我做了一堆假设,因为我不知道您对有效分数的真正要求,但这就是想法。

【讨论】:

    【解决方案2】:

    不要在 else 中做任何事情。甚至没有别的。

    【讨论】:

    • 如果我不写 else,它会自动设置为零
    • 我会假设 globalScore 在这种情况下是未定义的,或者是在“if”语句之前设置的默认值。
    • 我以为这就是他想要的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多