OC和Swift中的Options
发布时间:2020-12-14 06:50:27 所属栏目:百科 来源:网络整理
导读:1. OC 和 Swift 中的区别 OC中定义Options typedef NS_OPTIONS(NSUInteger,OCOptions) { OC_Sound = 1 0,OC_Title = 1 1,OC_Vibrate = 1 2,}; Swift 中定义Options // 需要实现OptionSetType协议 struct SwiftOptions: OptionSetType { let rawValue: UInt i
1. OC 和 Swift 中的区别OC中定义Optionstypedef NS_OPTIONS(NSUInteger,OCOptions) { OC_Sound = 1 << 0,OC_Title = 1 << 1,OC_Vibrate = 1 << 2,};
Swift 中定义Options// 需要实现OptionSetType协议
struct SwiftOptions: OptionSetType {
let rawValue: UInt
init(rawValue: UInt) { self.rawValue = rawValue }
static let Swift_Sound = SwiftOptions(rawValue: 1 << 0)
static let Swfit_Title = SwiftOptions(rawValue: 1 << 1)
static let Swift_Vibrate = SwiftOptions(rawValue: 1 << 2 )
}
* 在Swift中,可以调用OC的Options,但是,在OC中,不能调用Swift中的Options。 * 在OC中,不能调用Swift中定义的:
2.操作并操作(Union)* ObjectiveC * OCOptions options = OC_Sound | OC_Title;
* swift * let options = Swift_Sound.union(Swift_Vibrate)
print(options)
删除选项组合的一部分* ObjectiveC * OCOptions options = OC_Sound | OC_Title; // 3
// 删除OC_Sound选项
OCOptions modifiedOptions = options & (~OC_Sound); // 2
* swift * let options = Swift_Sound.union(Swfit_Title) // 3
let modifiedOptions = SwiftOptions(rawValue: options.rawValue - Swfit_Title.rawValue) // 1
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |