zoukankan      html  css  js  c++  java
  • extension Array where Element 代码学习

    var fieldNames: [String] {

            let p = UnsafePointer<Int32>(self.pointer)

            return Array(utf8Strings: relativePointer(base: p.advanced(by: 3), offset: self.pointer.pointee.fieldNames))

        }

    间接类型推断?! 

    ---------------------------------------

    protocol UTF8Initializable {

        init?(validatingUTF8: UnsafePointer<CChar>)

    }

    extension String : UTF8Initializable {}

    extension Array where Element : UTF8Initializable {

        init(utf8Strings: UnsafePointer<CChar>) {

            var strings = [Element]()

            var pointer = utf8Strings

            while let string = Element(validatingUTF8: pointer) {

                strings.append(string)

                while pointer.pointee != 0 {

                    pointer.advance()

                }

                pointer.advance()

                guard pointer.pointee != 0 else {

                    break

                }

            }

            self = strings

        }

    }

  • 相关阅读:
    Server Apache Tomcat v7.0 at localhost failed to start.
    iOS-UITextField、一些知识点
    iOS-UIButton
    iOS-URL
    iOS-UITableView(三)
    iOS-MVC(转)
    iOS-UITableView(二)
    iOS-UITableView(一)
    iOS-UIScrollView以及代理
    iOS-UIView常见方法、xib的基本使用
  • 原文地址:https://www.cnblogs.com/feng9exe/p/9200762.html
Copyright © 2011-2022 走看看