iOS:时间相关(18-10-13更)
先整理出时间相关的程序,以后有空再写成单例。
1、日历(NSCalendar)
2、时间格式()
3、时间戳
附录:
1、定时器
1、日历(NSCalendar)
1、想要获取 世纪、年、月、日、时、分、秒、星期 等信息,需要加入对应的枚举。
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierChinese];
NSUInteger units = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *components = [calendar components:units fromDate:[NSDate date]];
2、时间格式()
3、时间戳
附录:
1、定时器
1)、使用方法
//定时1秒,重复
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerAction:) userInfo:nil repeats:YES]; //定时中断处理
-(void)timerAction:(NSTimer*)timer
{
NSArray *viewArray = timer.userInfo;
} //定时器失效、释放
[timer invalidate];
补充:理论上,多个任务挂载到同一个定时器上,在定时中断处理,判断某任务是否需要暂停。
而不是,每个任务添加一个定时器,然后暂定定时器来暂停任务。
2)、滚动视图,定时器失效。解决方法:添加到RunLoop里
// NSDefaultRunLoopMode - 标准优先级
// NSRunLoopCommonModes - 高优先级
// UITrackingRunLoopMode - 用于 UIScrollView 和别的控件的动画 timer = [NSTimer scheduledTimerWithTimeInterval:1.0 repeats:YES block:^(NSTimer * _Nonnull timer) { }]; [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
补充:NSDefaultRunLoopMode ,默认模式,使用该模式还是会失效。
UITrackingRunLoopMode,用这个模式跟UIScrollView相同模式,拖动可以正常计时。
NSRunLoopCommonModes,把timer同时添加到上面两种RunLoop模式下(网上写的),拖动可以正常计时。
// 获得当前线程的 RunLoop 对象
[NSRunLoop currentRunLoop];
// 获得主线程的 RunLoop 对象
[NSRunLoop mainRunLoop];
iOS:时间相关(18-10-13更)的更多相关文章
- App适配iPhone 6/ Plus和iOS 8:10条小秘诀
App适配iPhone 6/ Plus和iOS 8:10条小秘诀 iPhone 6iOS 8适配 (原文:raywenderlich 作者:Jack Wu 译者:@TurtleFromMars ...
- macOS 10.13 High Sierra odoo11 开发配置--完整版
1.抹盘安装macOS Sierra 10.13: 制作macOS安装启动盘参见:http://www.iplaysoft.com/macos-usb-install-drive.html 2.安装g ...
- Ubuntu 18.10 版本发布
Ubuntu 是一个基于 Debian 的以桌面为主的 Linux 发行版,以其应用性而闻名.Ubuntu 提供三种官方版本:用于个人计算机的 Ubuntu 桌面,用于服务器和云的 Ubuntu 服务 ...
- win7笔记本VirtualBox安装黑苹果MacOS 10.13
环境 时间:2018.04.09,没有指明时间的教程都是耍流氓 笔记本:某州优雅A460P-i7G D2,4G内存,Intel Core i7-2670QM四核八线程(老笔记本勉强能用),ssd硬盘, ...
- 黑苹果之DELL台式机安装Mac OS X 10.13.6版本操作系统
由于本人所在的公司一般都是DELL的品牌台式机,所以以DELL台式机做小白鼠.记得在2012年的时候,在当时的那家公司为了学习自学IOS开发的Objective-C开发语言的时候,由于囊中羞涩买不起m ...
- 从Ubuntu 18.04 LTS升级到Ubuntu 18.10版本的方法
从Ubuntu 18.04 LTS升级到Ubuntu 18.10版本的方法 2018-10-18 21:08:39作者:ywnz稿源:云网牛站 本文提供从Ubuntu 18.04 LTS(Bionic ...
- 解决 Ubuntu 18.10 使用较新的独立显卡输出无法初始化图形界面并配置深度学习开发环境
原文地址:解决 Ubuntu 18.10 使用较新的独立显卡输出无法初始化图形界面并配置深度学习开发环境 0x00 配置 硬件 OS: Ubuntu 18.10 Base Board: ASUS WS ...
- 背水一战 Windows 10 (13) - 绘图: Stroke, Brush
[源码下载] 背水一战 Windows 10 (13) - 绘图: Stroke, Brush 作者:webabcd 介绍背水一战 Windows 10 之 绘图 Stroke - 笔划 Brush ...
- [CareerCup] 18.10 Word Transform 单词转换
18.10 Given two words of equal length that are in a dictionary, write a method to transform one word ...
- macOs升级到10.13.1Beta || JAVA升级到最新版之后PhpStorm菜单栏问题
macOs升级到10.13.1Beta || JAVA升级到最新版之后PhpStorm菜单栏会消失,估计不止出现在PhpStorm,一系列jetbrains的产品可能都会有这个问题,包括eclipis ...
随机推荐
- Laravel之Ueditor
1.访问网址http://ueditor.baidu.com/website/download.html下载合适的编辑器版本 2.按照插件包中的index.html样式,布局页面 3.如果需要使用表单 ...
- GIS平台结构设计
前言: WebGIS由于技术发展和功能定位的原因,一般在进行架构设计的时候更多地考虑是否容易实现.用户交互.数据传输方便.渲染效果等方面,对强GIS的应用考虑得少,所以架构上与桌面的GIS平台很不一样 ...
- How To Secure Apache with Let's Encrypt on Ubuntu (Free SSL)
Introduction This tutorial will show you how to set up a TLS/SSL certificate from Let's Encrypt on a ...
- jpa dialect设置
1.如果配置文件格式为application.properties,在配置文件中添加以下代码即可: spring.jpa.database-platform=org.hibernate.dialect ...
- JavaScript中map函数和filter的简单举例
JavaScript的数组迭代器函数map和filter,可以遍历数组时产生新的数组,和python的map函数很类似 1> filter是满足条件的留下,是对原数组的过滤:2> map则 ...
- C# 按位或,按位与, 按位异或
a != b -----> a = a | b , a 或者 b 只要有一个为 1, 那么,a 的最终结果就为 1 a &= b -----> a = a & b ...
- Linux Reboot And Poweroff Command
1.Environment:RedHat Linux Enterprise 6+Vmware Workstation 12 Pro 2.Linux shutdown and restart comma ...
- Vscode rg.exe cpu 占用过高
文件-> 首选项 -> 设置 -> 搜索search.followSymlinks 或者 修改settings.json 添加 "search.followSymlinks ...
- Exchange 2010 服务器邮件传输配额设置详解
在企业的邮件系统管理中,传输邮件的大小配额关系到邮件队列.邮件传输速度以及关系到该附件是否能正常发送,直接关系到用户体验.为此,传输邮件大小的设置,也经常是企业邮件管理员比较迷惑的地方.如下: 1) ...
- iPhone的设备名转换
def convertDeviceName(self, deviceName): """ 转换deviceName(如iPhone 6,2)为用户习惯形式(如iPhone ...