@available和#available和fatalError

    @available(*, unavailable, message: "Please using init(). This view using YogaKit to layout subviews.")
    override public init(frame _: CGRect) {
        fatalError("init(frame:) has not been implemented")
    }//*:所有平台
    //unavailable:不可用
    //message:信息

所有平台上这个初始化方法不可用

  • Swift 2.0 中,引入了可用性的概念。对于函数,类,协议等,可以使用**@available** 声明这些类型的生命周期依赖于特定的平台和操作系统版本。而**#available** 用在判断语句中(if, guard, while等),在不同的平台上做不同的逻辑。

@available放在函数(方法),类或者协议前面。表明这些类型适用的平台和操作系统。

@available(iOS 9, *) func myMethod() { 
    
  // do something 
}      

@available还有其他一些参数可以使用,分别是:

// deprecated = 版本号:从指定平台某个版本开始过期该声明 
// obsoleted = 版本号:从指定平台某个版本开始废弃(注意弃用的区别,deprecated是还可以继续使用,只不过是不推荐了,obsoleted是调用就会编译错误)该声明 
// message = 信息内容:给出一些附加信息 
// unavailable : 指定平台上是无效的 
// renamed = 新名字:重命名声明


@available(iOS, introduced: 6.0, deprecated: 9.0, message:"")
func myMethod() { }

@available(iOS, introduced: 8.0, obsoleted: 10.0, message:"")
func myMethod() { }

#available 用在条件语句代码块中,判断不同的平台下,做不同的逻辑处理 

if #available(iOS 8, *) {

  // iOS 8 及其以上系统运行
}

guard #available(iOS 8, *) else { 

  return //iOS 8 以下系统就直接返回
}

fatalError:类似于别的语言中的断言,assert

/// Unconditionally prints a given message and stops execution.
///
/// - Parameters:
///   - message: The string to print. The default is an empty string.
///   - file: The file name to print with `message`. The default is the file
///     where `fatalError(_:file:line:)` is called.
///   - line: The line number to print along with `message`. The default is the
///     line number where `fatalError(_:file:line:)` is called.

public func fatalError(_ message: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line) -> Never

当触发fatalError时候会强制抛出错误 

    @available(*, unavailable, message: "Please using init(). This view using YogaKit to layout subviews.")
    override public init(frame _: CGRect) {
        fatalError("init(frame:) has not been implemented")
    }//*:所有平台
    //unavailable:不可用
    //message:信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值