在进行 iOS macOS 开发的时候,我们经常会需要和文件进行交互,比如说关联并打开某一类型的文件,那么这个时候,你用到的并不是这个文件的后缀名,而是它的 UTI。
UTI 是一个统一文件类型名称,它规定了一个文件应该是什么类型,而不是靠后缀来确定,比如 txt,text,json 都是纯文本文件,它们都是 public.text
那么,通常情况下,对于知名的文件类型,你可以到苹果官方的页面[……]
在进行 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[……]
对于 iOS 开发者来说,面对 app 盗版,最大的问题不是技术破解,反而是越来越多的 Apple ID 共享盗版,有的人可能会说这样的盗版就相当于是“试用”了,喜欢的人自然会去入正……但实际上,由于一分钱共享账号盗版的存在,导致无数独立开发者最终走向了投简历。
总之,去年,Surge 的作者发布了这么一篇文章 Surge 2.0 是如何实现在 iOS 上反盗版的 他的理论是从 app 购买[……]
在 iOS 上,如果我们要一个 View 显示阴影,那么基本上是这么做的:
1 2 3 4 5 |
self.view.layer?.shadowColor = NSColor.black.cgColor self.view.layer?.shadowOpacity = 0.1 self.view.layer?.shadowOffset = CGSize(width: 0, height: 0) self.view.layer?.shadowRadius = 3 self.view.layer?.masksToBounds = false |
不过,到了 macOS 上,这样就不灵了——没有任何效果。
答案在于 macOS 上如果你想要给一个 View 使用
layer ,你必须手动标记,比如说这样:
[crayon-67ede[……]