iOSでシステム稼働時間を得る方法はありますか(Swiftを使用していますか?)私が必要とするのは、ユーザーが時間を変更することを心配することなく、時間を測定することです。 Androidの場合、起動後のミリ秒数を返すelapsedCurrentTimeMillis()
がありますが、今はiOSのようなものが必要です。ここで受け入れられた答えはGetting iOS system uptime, that doesn't pause when asleepですが、これはObjective Cのためのものです。私はそれをSwiftに必要としており、変換方法はわかりません。iOS/Swiftのシステム稼働時間の取得
答えて
純粋なSwiftソリューションを求めるときは、ObjCコードを上記の答えGetting iOS system uptime, that doesn't pause when asleepから変換しました。
func uptime() -> time_t {
var boottime = timeval()
var mib: [Int32] = [CTL_KERN, KERN_BOOTTIME]
var size = strideof(timeval)
var now = time_t()
var uptime: time_t = -1
time(&now)
if (sysctl(&mib, 2, &boottime, &size, nil, 0) != -1 && boottime.tv_sec != 0) {
uptime = now - boottime.tv_sec
}
return uptime
}
// print(uptime())
それは少しきれいに、私たちが代わりにsysctl
のsysctlbyname
を使用することができますようにするには:
// var mib: [Int32] = [CTL_KERN, KERN_BOOTTIME]
sysctlbyname("kern.boottime", &boottime, &size, nil, 0)
@ JAL ObjCとSwiftの間のsizeofの違う振る舞いをデバッグしました。それは今働きます! –
これはうまくいきますが、これはObjective-Cコードバージョンと同じ値を示しています!そして、私はプログラミングに苦労するつもりであることがわかります... – TimSim
あなたはスウィフトからにObjCコードを呼び出すことができます:Getting iOS system uptime, that doesn't pause when asleep:
print(SystemUtil().uptime());
はあなたが言及した受け入れ答えのようにObjCクラスを記述します。
インタフェースのためのSystemUtil.h
:実装のための
#import <Foundation/Foundation.h>
@interface SystemUtil : NSObject
- (time_t)uptime;
@end
SystemUtil.m
:
#import "SystemUtil.h"
#include <sys/sysctl.h>
@implementation SystemUtil
- (time_t)uptime
{
struct timeval boottime;
int mib[2] = {CTL_KERN, KERN_BOOTTIME};
size_t size = sizeof(boottime);
time_t now;
time_t uptime = -1;
(void)time(&now);
if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 && boottime.tv_sec != 0) {
uptime = now - boottime.tv_sec;
}
return uptime;
}
@end
そして、あなたは(スウィフトからにObjCクラスを使用できるように、次の内容の<Project>-Bridge-Header.h
を含めることを忘れないでください<Project>
はプロジェクト名です):
#import "SystemUtil.h"
これは何 `ちょうど約スウィフト4.
var boottime = timeval()
var size = MemoryLayout<timeval>.stride
sysctlbyname("kern.boottime", &boottime, &size, nil, 0)
- 1. Androidの「アプリケーションの稼働時間」を取得する方法は?
- 2. RTCからの稼働時間の取得
- 3. PythonでLinuxのシステム稼働時間を得る最速の方法
- 4. Windowsサービスの稼働時間を取得しますか?
- 5. 稼働時間が遅い
- 6. StackDriverメンテナンスウィンドウでの稼働時間チェック
- 7. Ubuntu ServerでMonoでシステムの稼働時間を取得するにはどうすればよいですか?
- 8. Javaのシステム(JVMではない)の稼働時間を問い合わせる
- 9. PowerBiでの継続時間(稼働時間)の使用
- 10. PHPの重複インシデントの配列から稼働時間帯を取得
- 11. Linuxシステムの稼働時間はどうすればわかりますか?
- 12. Pingdom稼働時間計算式
- 13. MVCモデルバインディングが12時間稼働しない時間帯
- 14. システムのシャットダウン時間の取得
- 15. グラファイト+グラファナによるサービスの稼働時間の測定
- 16. 稼働時間監視のためのUnixシェルコマンド
- 17. influxdb内の稼働時間のデータベースを効率的にモデリング
- 18. 稼働時間およびスケーリング設定のAzureデータウェアハウスの監視
- 19. Excelで非稼働日の勤務時間計算を除外
- 20. プログラムでサーバーの稼働時間を調べる
- 21. データベースの稼働時間を短縮するDjango/Mysql
- 22. 平均稼働時間データの保存に最適なアプローチ
- 23. Tezで無限の時間を稼働しているハイブクエリ
- 24. アプリ内で常時稼働中のサービス
- 25. スパークステートフルストリーミングジョブが、長い稼働時間の後にS3へのチェックポイント時にハングアップする
- 26. アプリケーション、稼働時間、ログファイルなどを監視する
- 27. MongoDBに稼働時間を格納します
- 28. Node.jsで稼働時間モニタを作成するアーキテクチャ
- 29. ブートストラップdatetimepicker v4.x 12時間が稼働しない
- 30. Oracleのn番目の稼働日を取得する
でのソリューションですNSProcessInfo.processInfo()。systemUptime'? – JAL
スリープ時間は考慮されていません。たとえその間にアプリケーションがシャットダウンされても、ユーザーが時間を変更したとしても、どれくらいの時間が経過したかを確実に測定する方法が必要です。 – TimSim