iOS 开发交流

Swift 关键字

2018-12-05  本文已影响37人  Mr__Peng__

常见的Swift关键字

func setName(name: String) {
        self.userName = name
}
class Person:NSObject {
    var name:String
    init(name : String) {
        self.name = name
    }
}// 定义一个继承与NSObject 的Person 类
protocol ExampleProtocol {
     var simpleDescription: String { get }
     mutating func adjust()
}
enum PrinterError: Error {
case outOfPaper
case noToner
case onFire
}

func send(job: Int, toPrinter printerName: String) throws -> String {
if printerName == "Never Has Toner" {
    throw PrinterError.noToner
}
return "Job sent"
}
let origin = 1
func setOrigin(int : inout Int) {
    int = 200   // 改变int 地址 指向的值
 }
setOrigin(int:&origin)
print(origin) // 此时origin = 200 ,

  1. class
类型 文件内 模块内 其他模块
open 可访问和继承 可访问和继承 可访问和继承
public 可访问和继承 可访问和继承 可访问,不可继承
internal 可访问和继承 可访问和继承 不可访问和继承
fileprivate 可访问和继承 不可访问和继承 不可访问和继承
private 可访问和继承 不可访问和继承 不可访问和继承
  1. func
类型 文件内 模块内 其他模块
open 可访问和重载 可访问和重载 可访问和重载
public 可访问和重载 可访问和重载 可访问,不可重载
internal 可访问和重载 可访问和重载 不可访问和重载
fileprivate 可访问和重载 不可访问和重载 不可访问和重载
private 可访问和重载 不可访问和重载 不可访问和重载

final修饰的func 在任何地方都不能被重载,class默认使用internal

typealias ii = Int
//模型
struct Model {
    let age: Int
}
 
//协议,使用关联类型
protocol TableViewCell {
    associatedtype T
    func updateCell(_ data: T)
}

//遵守TableViewCell
class MyTableViewCell: UITableViewCell, TableViewCell {
    typealias T = Model
    func updateCell(_ data: Model) {
        // do something ...
    }
}
lazy var type = 1

lazy var person : Person = {
    let p = Person()
    return p
}()
上一篇 下一篇

猜你喜欢

热点阅读