iOS 不常用功能

  1. UIVisualEffectView、UIBlurEffect
  2. UISearchBar、UISearchContainerViewController、UISearchController
  3. UISplitViewController:左右视图
  4. UUID
  5. UIDevice.current.identifierForVendor.uuidString 是给Vendor标识用户用的,每个设备在所属同一个Vender的应用里,都有相同的值。其中的Vender是指应用提供商,但准确点说,是通过BundleID的反转的前两部分进行匹配

  6. 字符串处理函数
    a. Scanner

    1
    2
    3
    var uint64:UInt64 = 0
    print(Scanner(string: "0xdd").scanHexInt64(&uint64))
    print(uint64)

    b. removeAll

    1
    2
    var str = "a:b:123"
    str.removeAll { return "123".contains($0)} //a:b:

    c. drop

    1
    2
    3
    4
    var str = "aaa:b:a:123"
    let substr = str.drop { (c) -> Bool in
    c == "a"}
    print(substr) //":b:a:123"

    d. filter

    1
    2
    3
    let cast = ["Vivien", "Marlon", "Kim", "Karl"]
    let shortNames = cast.filter { $0.count < 5 }
    print(shortNames) //["Kim", "Karl"]

    e. PersonNameComponents

  7. NSClassFromString: 这个方法判断类是否存在;如果这个函数返回nil,原因有可能为:
    a. swift 写的代码必须将“-ObjC”标志添加到“Other Linker Flags”构建设置
    b. 未加载! 在Other Linker Flags 中添加配置:-all_load 加载所有
    NSStringFromClass
    NSSelectorFromString: 判断某个方法是否存在
    NSProtocolFromString
    //应用场景:第三方库版本变更? 父类中调用子类的函数?

    1
    2
    3
    4
    let selector = NSSelectorFromString("remove")
    if self.responds(to: selector) {
    self.perform(selector)
    }
  8. Range (0..<5)、 ClosedRange (0…5)

  9. Result
  10. ContentHuggingPriority ==> 表示当前的Label的内容不想被拉伸
    ContentCompressionResistancePriority ==> 表示当前的Label的内容不想被收缩
  11. associatedtype
Contents
,