我试图将timeInterval与一个整数值进行比较,所以我尝试将timeInterval转换为一个整数并进行比较。但是我收到一个错误“无法转换为指针类型”:
NSTimeInterval timeInterval = [startTime timeIntervalSinceNow];
int intSecondsElapsed = [timeInterval intValue]; // Error here !!!!
if ([counterInt != intSecondsElapsed])
{
// Do something here...
}
如何去做呢?
编辑:包括有关执行错误的更多详细信息。
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;
}
}
最佳答案
NSTimeInterval被定义为double,因此,如果要将其转换为int,则可以进行简单的类型转换
NSTimeInterval timeInterval = [startTime timeIntervalSinceNow];
int intSecondsElapsed = (int)timeInterval;
或简单地
int intSecondsElapsed = (int)[startTime timeIntervalSinceNow];
编辑:如果您在不同的函数中初始化并使用
startTime
变量,则需要保留它。 [NSDate date]
返回自动释放的对象,因此它在创建范围之外变得无效。为了使事情变得更容易,为startTime
声明一个带有keep属性的属性,并使用创建它self.startTime = [NSDate date];
并且不要忘记在您的类dealloc方法中释放它。
关于iphone - 无法比较TimeInterval和Integer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3778053/