文档章节

iOS 运行时间

 哦你好谢谢
发布于 2015/12/31 09:49
字数 397
阅读 25
收藏 0

      最近在做项目的时候,项目有一个需求是有一个离线操作(在没有网络的情况下),其中就用到了时间记录。首先第一个想到的肯定是 NSDate *date = [NSDate date];  但是要和服务器的时间保持一致。在两个地方取得时间肯定是有时差的,也没有可比性。所以程序自己要做一个计算。说到计算,肯定会想到计时器,但是考虑到程序进入到后台也要做计算,放弃了用计时器来做时间计算(计时器一直开着挺耗资源的)。第二个想到的是获取去两次本地时间,然后时间点相减,但是考虑到本地时间有可能会被改掉,所以也行不通。后来在网上找了很多资料,终于有所进展。

      一开始找到通过NSProcessInfo来获取运行时间,后来通过测试,发现当程序进入后台的时候,NSProcessInfo停止了运行,第一记录的时间点和最后一次记录的时间相减,比真实时间少了很长时间。后来发现规律当程序进入后台后就停止了运行。

     最后在一个坛子里面找了下面的方法

+(time_t)uptimeFun
{
    // 计算程序运行多长时间返回的时间戳是秒数
    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;
}


© 著作权归作者所有

粉丝 0
博文 4
码字总数 1100
作品 0
宝山
私信 提问
苹果 iOS 10 更新消息汇总,iPhone 4s 可能用不了

自从iOS 7放弃沿用数代的拟物化界面,开启全新的扁平化系统以来,iOS每一年都在前作的基础上进行完善,使iOS更加的好用、完美。去年6月,苹果发布了新一代操作系统iOS 9,并在9月份发布新款i...

oschina
2016/05/30
5.1K
29
苹果发布第一个 Android 应用,支持切换到 iOS 9

苹果发布了第一个 Android 应用。这并不是一个 Android 版本的 Safari 或者是其他的,而是一个用来简化切换到 iOS 过程的工具。Move to iOS 应用会吸引很多想使用 iPhone 6s/iPhone 6s Plus...

oschina
2015/09/17
10.6K
49
iOS 12 真的能让旧款 iPhone 速度飞起吗?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/csdnnews/article/details/82757910 去年 9 月,苹果在发布 iOS 11 时曾表示,这是先进移动操作系统 iOS 的又...

CSDN资讯
2018/09/18
0
0
学习如何针对iOS 7进行开发?

  iOS 7已经发布了六个测试版,除了beta 6进行了小幅修正外,其他几个测试版都有不小的改动。昨天有消息说苹果将在9月10日发布iOS 7正式版,那么GM版很快将会与开发者见面。在iOS 7来临前夕...

fangzhou99
2013/09/17
0
0
iOS 8.0.1 将修复电话、键盘、Safari 视频播放等错误

本月早些时候,有报告称苹果正准备向运营商合作伙伴发布 iOS 8.0.1 升级补丁,当时苹果还没有举行 iPhone 6 和 6 Plus 新品发布会,iOS 8正式版的发布日期也没有公布。目前,iOS 8.0.1 升级补...

oschina
2014/09/24
1K
7

没有更多内容

加载失败,请刷新页面

加载更多

分享一波 RabbitMQ 面试题有答案

1、什么是rabbitmq 2、为什么要使用rabbitmq 3、使用rabbitmq的场景 4、如何确保消息正确地发送至RabbitMQ? 如何确保消息接收方消费了消息? 发送方确认模式 接收方确认机制 接收方消息确认...

搜云库技术团队
54分钟前
2
0
2019年JAVA面试题(高级资深)

记录下本年度最新的面试题: 2019-04-24 //某互联网公司,劳工资源管理方向职位 1.bio/nio/aio介绍下,粘包、拆包问题怎么解决? 2.数据库四个特性是什么,事务传播性是怎么样的?spring事务和...

em_aaron
57分钟前
2
0
yarn如何全局安装命令以及和环境变量的关系

npm全局安装 npm i -g xxx yarn 全局安装 yarn global add xxx 然而你可能会发现npm全局安装后的命令可以直接使用,而yarn却不行,这是为什么呢? 我们来查看下npm和yarn的bin目录 使用npm全...

单线程生物
今天
2
0
异步线程RequestContextHolder.getRequestAttributes()为null

使用Spring框架,在Service中开启一个新的线程,在新的线程中使用 RequestAttributes ra = RequestContextHolder.getRequestAttributes(); 获取出来为null,有没有什么办法能解决? 问题出现...

xiaomin0322
今天
1
0
mingw64环境搭建

mingw64环境搭建 转自:http://www.cr173.com/soft/132367.html MinGW64位版,默认编译出来是64位的,需要编译32位请使用-m32 参数!mingw是一款gnu工具集合是Minimalist GNU on Windows的简称...

shzwork
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部