无法将TimeInterval与Integer进行比较

Ste*_*hen 2 iphone nstimeinterval

我正在尝试将timeInterval与整数值进行比较,因此我尝试将timeInterval转换为整数并进行比较.但是我收到错误'无法转换为指针类型':

NSTimeInterval timeInterval = [startTime timeIntervalSinceNow];
int intSecondsElapsed = [timeInterval intValue]; // Error here !!!!

if ([counterInt != intSecondsElapsed])
{
    // Do something here...
}
Run Code Online (Sandbox Code Playgroud)

怎么会这样做?

编辑:包括与执行错误相关的更多详细信息.

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    //[formatter setDateFormat:@"HH:mm:ss"];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    startTime = [NSDate date];
    [formatter release];


if ([deviceType isEqualToString:@"iPhone 4"]||[deviceType isEqualToString:@"iPhone Simulator"])
    {
        int intSecondsElapsed = (int)[startTime timeIntervalSinceNow];
        if (counterInt != intSecondsElapsed)
        {
            counterInt = intSecondsElapsed;
        }
    }
Run Code Online (Sandbox Code Playgroud)

Vla*_*mir 6

NSTimeInterval定义为double,因此如果要将其转换为int,则可以进行简单的类型转换

NSTimeInterval timeInterval = [startTime timeIntervalSinceNow];
int intSecondsElapsed = (int)timeInterval;
Run Code Online (Sandbox Code Playgroud)

或者干脆

int intSecondsElapsed = (int)[startTime timeIntervalSinceNow];
Run Code Online (Sandbox Code Playgroud)

编辑:如果您startTime在不同的函数中初始化并使用您的变量,则需要保留它.[NSDate date]返回自动释放的对象,使其在创建范围之外变为无效.为了方便起见,使用retain属性声明属性startTime并使用它创建它

self.startTime = [NSDate date];
Run Code Online (Sandbox Code Playgroud)

并且不要忘记在类dealloc方法中释放它.