2017-05-13 18 views
-2

DispatchTime.now()の値を保存して、呼び出された関数の外部にアクセスする必要がある場合、変数の型は何ですか?Swift - DispatchTime.now()から返される変数のタイプ

編集:変数タイプはDispatchTimeですが、変数としてその値を保存する方法がないため、準備中(別の場合)に別のビューコントローラーに渡すか、関数全体で使用できます。 [コールでのパラメータの欠落している引数 'uptimeNanoseconds']

var t = DispatchTime [タイプ名の後に予想されるメンバー名またはコンストラクタ呼び出し]

var t = DispatchTime()

var t = DispatchTime.selfは(エラーなし、それ以降のトン= DispatchTime.nowをしよう( '' DispatchTime.Type ''にタイプ 'DispatchTime.Type'のタイプの値を割り当てることはできません)

+0

DipatchTimeは可変タイプになります。 –

+0

オプションXcodeの変数をクリックすると、推論された時間が表示されます。コマンドで型/メソッド/関数/プロパティをクリックして宣言を確認します。 – Alexander

答えて

0

変数としてDispatchTimeを保存することができます。あなたはDispatchTimeのこのプロパティを見てみる必要があります(一部のキャッシュなど)のアプリのメモリ以外の場所に格納する必要がある場合は:

public let rawValue: dispatch_time_t 

これは、ナノ秒単位で生の値ですです。ドキュメント(https://developer.apple.com/reference/dispatch/dispatch_time_t)から、それはUInt64型であることがわかります。そして、さらに良いすべてのものを作るために、あなたはこの方法でDispatchTimeを初期化することができます

DispatchTime(uptimeNanoseconds: <UInt64>) 

を、あなたはどこでもあなたが欲しいあなたDispatchTimeの生の値を保存することができますこの方法。

-2

私のプロジェクトでDispatchTimeを使用しない方法を説明しました。現在の時刻と変数を埋める後で、その後 var t = DispatchTime(uptimeNanoseconds: 0)

そして:t = DispatchTime.now()

使用しようとすると、この方法は私の秒の正しい数を与えていませんでした。

すると、このように変数を設定することができます

let nanoTime = endingTime.uptimeNanoseconds - startTime.uptimeNanoseconds 
let timeInterval = Double(nanoTime)/1_000_000_000 

代わりに、CFAbsoluteTime()変数を使用して、開始時と終了時にCFAbsoluteTimeGetCurrent()に値を設定しました。

このようにtotalTime = endTime - startTimeは正しい秒数を返します

+0

ねえ、私はこの質問を削除しようとしましたが、それは私に警告しませんでした...あなたが悪い質問を書いたとき、何が最良の行動措置ですか?私は私の考えを説明するために答えを残したいと思ったが、それも人気がないことが判明した。私は将来の読者のためにここで価値が見えないので、私ができるなら質問を削除したいと思います。 – RanLearns

関連する問題