在 iOS 开发中,我们经常会用到 Timer 这个类,用来进行一些重复或者延迟调用。
不过,在实际的使用中,如果你是用来周期地更新 UI,则会发现 Timer 的调用经常会被其他操作阻挡导致无法正常更新 UI。
比如说在我的 HourlyMeow 项目中,自定义时钟[……]
在 iOS 开发中,我们经常会用到 Timer 这个类,用来进行一些重复或者延迟调用。
不过,在实际的使用中,如果你是用来周期地更新 UI,则会发现 Timer 的调用经常会被其他操作阻挡导致无法正常更新 UI。
比如说在我的 HourlyMeow 项目中,自定义时钟[……]
1995.10.09 – 2018.06.03[……]
https://www.youtube.com/watch?v=bg6QV2JEPvI
一直很喜欢 Jannine Weigel,这首歌最近一直在脑虫,后来就推荐给了女票,她让我给翻译……好吧,很久都没有翻译歌词了,然后这首歌又没有中文歌词,于是我就简单翻译了一下, “deep end”在英文里有个爆发、疯狂的意思,所以里边的歌词也可以理解为“游走在崩溃的边缘”?总之大概就是这样的一种双关。[……]
女票送了我一把 樱桃 MX Borad 8.0!是的,就是那个大厂难得出的那一款需要 9.5 小时 CNC 机铣加工阳极氧化的 87 键机械键盘!和苹果的外接键盘一个设计风格,再加上特殊设计的键帽字体,我看的第一眼就爱上了(顺便吹一下,这就是我常说的设计三要素里的“本能设计”)
不过,大厂都是为广大用户设计,像我这种小众基本上都是不在考虑之列的,于是,到手除了开心外还是开心要去琢磨[……]
在进行 iOS macOS 开发的时候,我们经常会需要和文件进行交互,比如说关联并打开某一类型的文件,那么这个时候,你用到的并不是这个文件的后缀名,而是它的 UTI。
UTI 是一个统一文件类型名称,它规定了一个文件应该是什么类型,而不是靠后缀来确定,比如 txt,text,json 都是纯文本文件,它们都是 public.text
那么,通常情况下,对于知名的文件类型,你可以到苹果官方的页面[……]
在购买了VPS之后你应该做足的安全措施中我们提到过用 fail2ban 来保护 ssh ,这样即使不改变ssh端口(默认为22),也可以做到避免被暴力破解密码,当然,我们已经开启了证书登录并关闭了 ssh 的密码登录选项,但用 fail2ban 干掉那些不停尝试的 bot 也是一件令人心情愉悦的事情。
其实,除了 使用 fail2ban 防止 Bind9 被用于 DNS 放大攻击外,我们也可[……]
在 iOS 10 以后,iOS 使用了全新的
UserNotifications 作为通知 API,这允许开发者使用 图片、视频、声音 等富媒体作为通知内容,同时进一步地,你还可以使用 Notification Content Extension 来自定义通知的大小和内容布局。
如果要自定义通知的提示音,那么你可以给 [cray[……]