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 になります。このコードのテンプレートはプログラマーを誤解させると思います。正しいコードは、float delayInSeconds = 2.0;
Am I right?である必要があります。前もって感謝します。