可用性 available 简析

本文详细介绍了Swift语言中@available与#available的使用方法。@available用于声明生命周期依赖于特定平台和操作系统版本的函数、类和协议等;#available则用于条件判断,在不同平台上实现不同逻辑。文章通过具体示例讲解了这些特性如何帮助开发者更好地管理和适配多平台应用。

available

Swift有两种属性,分别为适用于声明和适用于类型的属性。available属于声明属性.

将 available 用于声明时,表示该声明的生命周期与特定的平台和操作系统版本有关。 

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

available 经常与参数列表一同出现,该参数列表至少有两个特性参数,参数之间由逗号分隔.这些参数由以下这些平台名字中的一个起头:

• iOS

• iOSApplicationExtension

• macOS

• macOSApplicationExtension

• watchOS

• watchOSApplicationExtension

• tvOS

• tvOSApplicationExtension

当然,你也可以用一个星号(*)来表示上面提到的所有平台。 其余的参数,可以按照任何顺序出现,并且可以添加关于声明生命周期的附加信息,包括重要事件。 下面直接上代码

@available

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

@available(iOS 9, *) 是一种简写形式。全写形式是 @available(iOS, introduced=9.0). introduced = 9.0 参数表示指定平台(iOS)从 9.0 开始引入该声明。为什么可以采用简写形式呢?当只有 introduced 一种参数时,就可以简写成以上简写形式。同理:@available(iOS 8.0, OSX 10.10, *) 这样也是可以的。表示同时在多个平台上(iOS 8.0 及其以上;OSX 10.10及其以上)的可用性。

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

  • deprecated 参数表示指定平台从哪一版本开始弃用该声明 

  • obsoleted 参数表示指定平台从哪一版本开始废弃该声明。当一个声明被废弃后,它就从平台中移除,不能再被使用 

  • message 参数用来提供文本信息。当使用被弃用或者被废弃的声明时,编译器会抛出警告或错误信息。 

  • unavailable 指定平台上是无效的

  • renamed 参数用来提供文本信息,用以表示被重命名的声明的新名字。当使用声明的旧名字时,编译器会报错提示新名字 

#available

if #available(iOS 8, *) {
        // iOS 8 及其以上系统运行
}


guard #available(iOS 8, *) else {
    return //iOS 8 以下系统就直接返回
}



<think>好的,我现在需要帮助用户检查SAP SD模块中的可用性检查(availability check)。首先,我需要回忆SAP SD中可用性检查的相关知识,包括配置步骤、主数据设置以及常见问题。用户提到“Sapsd”,可能是拼写错误,应该是指SAP SD(Sales and Distribution)模块。 首先,可用性检查在销售订单处理中非常重要,用于确认库存是否足够满足客户需求。SAP SD中的可用性检查通常涉及物料的可用数量,包括库存、生产订单、采购订单等。需要确认用户是否已经配置了可用性检查的相关设置,比如需求传输、检查规则和范围。 接下来,步骤可能包括检查物料主数据中的可用性检查设置,销售订单中的项目类别是否启用了可用性检查,以及计划行类别是否正确配置。另外,还需要考虑后台配置中的需求分类和可用性检查控制参数。 用户可能遇到可用性检查未执行或结果不符合预期的问题,这可能与配置错误或主数据设置有关。例如,物料主数据的MRP视图中的可用性检查组,或者销售订单类型中的项目类别是否关联了正确的需求传输。 还需要考虑ATP(Available-to-Promise)逻辑,包括检查范围是否包括库存、在途采购订单、生产订单等。此外,后台的事务代码如OVZ9(检查计划行类别)、OVZ2(配置需求分类)和OVZ3(定义需求传输)可能需要检查。 最后,用户可能需要验证可用性检查的结果,使用事务代码CO09或VA05查看库存状况。如果用户的问题涉及到特定错误消息,可能需要进一步分析日志或系统配置。 需要确保回答结构清晰,分步骤说明检查流程,并给出相关配置路径和事务代码。同时,根据用户可能的后续问题,生成相关问题,帮助用户深入理解可用性检查的配置和排错。</think>### SAP SD可用性检查的验证步骤 SAP SD模块的可用性检查(Availability Check)通过ATP(Available-to-Promise)逻辑验证物料的可交付数量[^1]。以下是检查配置有效性的关键步骤: 1. **主数据配置验证** - 物料主数据**MRP2视图**中需设置`可用性检查组`(如`02`表示按每日检查) - 客户主数据**装运视图**需维护`交货工厂`和`装运条件` 2. **销售单据配置检查** ```ABAP 事务代码OVZ9 → 检查计划行类别是否激活ATP 事务代码VOV7 → 查看项目类别需求传输标识 ``` - 项目类别需启用`需求传输`(Requirement Transfer) - 计划行类别必须勾选`Availability check`选项 3. **后台配置路径** ```text SPRO → 销售与分销 → 基本功能 → 可用性检查和需求传输 ``` - 检查`需求分类`(Requirement Class)是否关联ATP检查规则 - 确认`检查控制`(Checking Control)中维护了正确的检查范围(如库存+采购订单) 4. **执行验证方法** - 创建销售订单时观察系统是否生成**需求凭证**(Requirement Document) - 使用事务代码CO09输入物料号+工厂+检查范围,查看ATP结果明细
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值