• 七月第二周总结


    1.sendEvent调用:

    当手指触摸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 是一个协议。

    4.MacOS系统终端查看本机IP:

    ifconfig

    5.判断View上是否包含此子视图:

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

    6.collectionView?.prefetchDataSource

    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控制器。

    https://www.cnblogs.com/acBool/p/5994663.html

    14.MAC终端常用语法:

    pwd

    打印当前所在工作目录

    cd

    跳转到指定目录 ,如果后面没有追加指定路径,则跳转到用户主目录

    ls

    列出当前目录下的子目录和文件

    open

    打开指定文件目录/文件

    /

    根目录

    ..

    上级目录

    .

    当前目录

    ~

    用户主目录

    touch

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

    mkdir

    新建目录

    rmdir

    删除目录,注意只能是空目录

    sudo

    临时以root用户权限去操作.

  • 相关阅读:
    记一则玄乎奇玄的ADG误删自救事件
    ORACLE 日常信息查询sql
    Linux脚本判断磁盘容量
    postgresql数据库创建触发器记录表修改时间
    centos7关闭防火墙
    centos7 安装mysql5.7(二进制tar包方式)
    Oracle11G RMAN-06214: Datafile Copy /u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_cpbd.f
    SQLPlus中set命令
    oradehub命令
    记一报错解决:ORA-00845: MEMORY_TARGET not supported on this system
  • 原文地址:https://www.cnblogs.com/pengsi/p/9305696.html
Copyright © 2020-2023  润新知