2

当我在 XCode 中键入“dispatch_after”时,它会自动完成 GCD 代码,如下所示:

int64_t delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    <#code to be executed on the main queue after delay#>
});

让我们看看这个声明:

int64_t delayInSeconds = 2.0;

int64_t 是“long long”的同义词,但是这里我们给这种变量delayInSeconds赋值一个double值“2.0”。所以值的小数部分将被丢弃。如果赋值为“0.3”,变量的值将是 0。我认为这个代码模板会误导程序员,正确的代码应该float delayInSeconds = 2.0;是我对吗?提前致谢。

4

0 回答 0