变量范围if else语句

时间:2012-06-20 19:10:31

标签: ios variables if-statement

这可能听起来不是很聪明,但我在使这种方法有效方面遇到的困难很小。我想使用interstitialad变量来存储在第一个条件中调用它的时间。然后当callcount> = 2时,我想使用之前的相同值。有人可以给我一些想法吗?

    -(void)timestamp{

       long now = [[NSDate date]timeIntervalSince1970]/1000;
        long interstitialad = 0.00;
        long finalad;

       if(Callcount ==1){
        interstitialad = [[NSDate date]timeIntervalSince1970]/1000;

       }

     else if (Callcount >= 2 && now - interstitialad >= 200){

     [self displayInterstitial];

     }

3 个答案:

答案 0 :(得分:0)

使它成为此代码所在类的实例变量,并使用该类的同一对象来处理所有timestamp次调用。

答案 1 :(得分:0)

语句结束时,在if语句(或else语句)中声明的变量超出范围。您必须在if / else语句之前声明变量,使其值在语句之间保持不变。请注意,某些语言将绑定的if / else语句视为同一语句而其他语句则不会。

答案 2 :(得分:0)

首先你必须明白,在if if中,每次调用时间戳时都只会访问其中一个。如果您希望在一次运行中执行两项检查,请删除else关键字。

如果您只想在整个类中保留interstitialad变量的值,只需将其转换为实例变量,方法是将其移出方法,在界面中声明它并使用它的属性保持对它的引用设置正确。