七月第二週總結

1.sendEvent調用:html

當手指觸摸ipad屏幕的時候會調用,由於每次進入App都有一個時間計數器。後端

@objc(MyApplication) class MyApplication: UIApplication {
    
    override func sendEvent(_ event: UIEvent) {
        if event.type == .touches {
            if let touches = event.allTouches {
                for touch in touches.enumerated() {
                    if touch.element.phase == .began && HHTSwitchGlobalData.shared.canGotoWaiter {
                        NotificationCenter.default.post(Notification(name:  NSNotification.Name.WaiterHomeAutoExitRestart))
                    }
                }
            }
        }
        super.sendEvent(event)
    }
}

2.數組添加數據:數組

for _ in 0..<10000 {

  var a = [1, 2, 3, 4, 5]
  let b = [6, 7, 8, 9, 10]

  a.appendContentsOf(b)

  if a != [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] { fatalError("Wrong Order") }
}

3.定義結構體:緩存

struct MergeOptions: OptionSet {
    let rawValue: Int
    static let ordered      =   MergeOptions(rawValue: 1<<0)
    static let ordering     =   MergeOptions(rawValue: 1<<1)
    static let sellout      =   MergeOptions(rawValue: 1<<2)
    static let emergency    =   MergeOptions(rawValue: 1<<3)
    static let redEnvelope  =   MergeOptions(rawValue: 1<<4)
}

OptionSet 是一個協議。app

4.MacOS系統終端查看本機IP:異步

ifconfigide

5.判斷View上是否包含此子視圖:post

if self.view.subviews.contains(self.introductionView) {
            return
}

6.collectionView?.prefetchDataSourcefetch

if #available(iOS 10.0, tvOS 10.0, *) {
            collectionView?.prefetchDataSource = self
        }
// 實現預加載。
// 翻 API 的時候看到了 iOS 10 新加入的 UITableViewDataSourcePrefetch 協議,主要是 Apple 針對於 CollectionView 大量 Item 快速滑動時掉幀嚴重問題的優化。

7.Kingfisher的ImagePrefetcher(urls: urls).start()使用:優化

將一些圖片在顯示到屏幕上以前,先預取到緩存。主要用於當你能夠預知接下來會用到圖片資源時,避免屢次請求。

https://blog.csdn.net/sps900608/article/details/51671849

8.

//設置緩存
self.layer.shouldRasterize = true

當shouldRasterize設成true時,layer被渲染成一個bitmap,並緩存起來,等下次使用時不會再從新去渲染了。實現圓角自己就是在作顏色混合(blending),若是每次頁面出來時都blending,消耗太大,這時shouldRasterize = yes,下次就只是簡單的從渲染引擎的cache裏讀取那張bitmap,節約系統資源。

若是在滾動tableView時,每次都執行圓角設置,確定會阻塞UI,設置這個將會使滑動更加流暢。

//設置抗鋸齒邊緣
self.layer.rasterizationScale = UIScreen.main.scale

//離屏渲染 - 異步繪製  耗電
self.layer.drawsAsynchronously = true

9.rm -rf

我在誤刪時,是使用 rm -rf 命令,這固然是個耳熟能詳的惡名遠揚的命令(以致於我當時請教後端大佬的時候,後端大佬的反應是『哦,你也終於刪一次庫啦』)

10.Github建立分支,提交代碼和合並分支:

11.self.navigationController.viewController.count:

只有調用self.navigationController?.pushViewController纔會改變,present和self.navigationController?.present都不會改變。

12.判斷輸入的字符串是不是數字:

let filterStr = string.filter { "0123456789".contains($0) }
let isValid = filterStr.count == string.count

13.presentedViewController 和 presentingViewController 以及 dismissViewControllerAnimated 的區別:

假設從A控制器經過present的方式跳轉到了B控制器,那麼 A.presentedViewController 就是B控制器;B.presentingViewController 就是A控制器。

http://www.javashuo.com/article/p-scgkcxur-ek.html

14.MAC終端經常使用語法:

pwd

打印當前所在工做目錄

cd

跳轉到指定目錄 ,若是後面沒有追加指定路徑,則跳轉到用戶主目錄

ls

列出當前目錄下的子目錄和文件

open

打開指定文件目錄/文件

/

根目錄

..

上級目錄

.

當前目錄

~

用戶主目錄

 

touch

若指定文件不存在,新建文件.

mkdir

新建目錄

rmdir

刪除目錄,注意只能是空目錄

 

sudo

臨時以root用戶權限去操做.

相關文章
相關標籤/搜索