ARTS-10.20

Algorithm

https://leetcode.com/submissions/detail/411064413/

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution172 {
func trailingZeroes(_ n: Int) -> Int {
var n = n
var count = 0

while n > 0 {
n /= 5
count += n
}

return count
}
}

Review

SwiftUI First Thoughts

文中介绍了swift语言的特点,以及对一些开发者不使用swift的理由做出了自己的看法。

然后介绍了苹果为什么要开发swiftUI(跨平台和实时预览)。

最后探讨了swiftUI的优缺点并对其做了总结(实时预览、代码量少、布局方便;但是仍是beta版、有bug、花括号层级太多)。

文中推荐了几个swiftUI教程,记录一下:Paul Hudson of Hacking with Swift with his Learn SwiftUI tutorials, Mohammad Azam’s great YouTube series, 和 Meng To’s SwiftUI course at Design+Code.

Tips

A new way to manage the back button title in iOS 14 with backButtonDisplayMode

在iOS14中,长按navigation bar的返回按钮,会调出一个stack,展示历史navigation controller。

返回按钮的title的值会先选择backBarButtonItem.title的值,若没设置则会选择 navigationItem.backButtonTitle的值,若没有则会使用navigationItem.title或者viewController.title.

在iOS14中可使用BackButtonDisplayMode设置返回按钮。他有三种模式:

  • default:history stack中的title显示的是返回按钮的title
  • generic:返回按钮的title是“back”,history stack中的是title, navigationItem.title, 或者 navigationItem.backButtonTitle。但是不会影响backBarButtonItem.title的设置。
  • minimal:返回按钮不现实title,只展示”<”。history stack中和geneic一样

Share

What is @escaping in Swift closures

  • @escaping原理:在其他位置创建一个变量保存该闭包,使得该闭包在函数结束后仍能访问到。

  • 需要使用@escaping的情况:1. 闭包作为函数参数,当函数结束之后,该闭包需要仍然存在。2. 在一个逃逸闭包中的闭包,需要时逃逸闭包。

  • 注意:由于逃逸闭包本质上是保存在其他位置(或者说是被其他变量持有),会导致强循环引用问题,此时需要小心处理。

0%