oc swift使用 枚举_swift 枚举与oc枚举的区别 - CSDN
  • OC枚举Swift 枚举

    2016-07-31 08:56:30
    OC枚举Swift 枚举介绍

    OC枚举和Swift 枚举


    下面介绍一下 OC 枚举和 Swift 枚举的写法!

    OC枚举:


             


    Swift 枚举:

                


     以上,希望对大家会有所帮助,谢谢!










    展开全文
  • Swift 中调用OC枚举

    2019-09-17 14:35:00
    OC中 typedef NS_ENUM (NSUInteger, EVDeviceType) { EVDeviceAudioCapture = 0, EVDeviceAudioPlayback = 1, EVDeviceVideoCapture = 2 }; Swift EVDeviceType.audioCapture

    OC中

    typedef NS_ENUM (NSUInteger, EVDeviceType) {
        EVDeviceAudioCapture = 0,
        EVDeviceAudioPlayback = 1,
        EVDeviceVideoCapture = 2
    };
    

    Swift

    EVDeviceType.audioCapture
    
    展开全文
  • 今天介绍一下在OC文件中声明了一个枚举类型,如何在Swift文件中调用该枚举类型的值。 1.项目工程构建的时候选的是Swift语言,项目名称TestProject。 2.建立一个Swift文件SwiftTestFile.swift 和一个OC的文件 ...

    在OC和Swift混编的过程中有很多的细节需要注意。

    今天介绍一下在OC文件中声明了一个枚举类型,如何在Swift文件中调用该枚举类型的值。

    1.项目工程构建的时候选的是Swift语言,项目名称TestProject。

    2.建立一个Swift文件SwiftTestFile.swift 和一个OC的文件 ObjectTestFile.h 和ObjectTestFile.m。

    在ObjectTestFile.h 中声明一个枚举类型:

    typedef NS_ENUM(NSInteger, YXLabelStyle) {
        YXLabelStyleSingle1_1,
        YXLabelStyleSingle1_2,
        YXLabelStyleSingle1_3,
    }

    首先必须确认的是枚举的每个值必须是枚举的“名字+后缀”的形式,这是一种规范,不这样在Swift文件中会导致调用不到。

    也就是例子中枚举名为“YXLabelStyle”,那么每个值必须是“YXLabelStyle+...”的形式。

    3.首先想要Swift调用OC文件及内容,必须有一个桥接文件并把需要调用的OC文件的头文件引入,桥接文件的构建就不多说了,一搜一大把,我们项目中桥接文件为“Bridging-Header.h”。

    桥接文件中导入头文件:

    #ifndef Bridging_Header_h
    #define Bridging_Header_h
    
    #import "ObjectTestFile.h"
    
    #endif /* Bridging_Header_h */

    4.这样就可以在Swift文件中调用这个枚举类型的值。

    在调用的时候直接使用“YXLabelStyle.single1_1”或者直接“.single1_1”调用即可,这就是为什么要规范的原因。

    5.列子:

    假设我们有一个YXLabel,自定义实例化方法需要传入该枚举类型的值来确定YXLabel的一些样式和特性,那么我么可以这样:

    let label = YXLabel(style: YXLabelStyle.single1_1)

    或者直接这样:

    let label = YXLabel(style: .single4_1)

     

    展开全文
  • 二十二 Swift3.0之 枚举

    2017-04-08 17:01:41
    Swift枚举: Swift中的枚举比OC中的枚举强大, 因为Swift中的枚举是一等类型, 它可以像类和结构体一样增加属性和方法 格式: enum Method{ case 枚举值 } */enum Method{ // case Add // case Sub // case Mul // case...
    /*
    Swift枚举:
    Swift中的枚举比OC中的枚举强大, 因为Swift中的枚举是一等类型, 它可以像类和结构体一样增加属性和方法
    格式:
    enum Method{
        case 枚举值
    }
    */
    
    enum Method{
    //    case Add
    //    case Sub
    //    case Mul
    //    case Div
        // 可以连在一起写
        case Add, Sub, Mul, Div
    }
    // 可以使用枚举类型变量或常量接收枚举值
    var m: Method = .Add
    // 注意: 如果变量或常量没有指定类型, 那么前面必须加上该值属于哪个枚举类型
    var m1 = Method.Add
    
    
    // 利用Switch匹配
    // 注意: 如果case中包含了所有的值, 可以不写default. 如果case中没有包含枚举中所有的值, 必须写default
    switch (Method.Add){
        case Method.Add:
            print("加法")
        case Method.Sub:
            print("减法")
        case Method.Mul:
            print("除法")
        case Method.Div:
            print("乘法")
    //    default:
    //        print("都不是")
    }
    
    /*
    原始值:
     OC中枚举的本质就是整数,所以OC中的枚举是有原始值的,默认是从0开始
    而Swift中的枚举默认是没有原始值的, 但是可以在定义时告诉系统让枚举有原始值
    enum Method: 枚举值原始值类型{
        case 枚举值
    }
    */
    
    enum Method2: Int{
        // 可以连在一起写
        case Add, Sub, Mul, Div
    }
    // 和OC中的枚举一样, 也可以指定原始值, 后面的值默认+1
    enum Method3: Int{
        case Add = 5, Sub, Mul, Div
    }
    
    // Swift中的枚举除了可以指定整形以外还可以指定其它类型, 但是如果指定其它类型, 必须给所有枚举值赋值, 因为不能自动递增
    enum Method4: Double{
        // 可以连在一起写
        case Add = 5.0, Sub = 6.0, Mul = 6.1, Div = 8.0
    }
    // rawValue代表将枚举值转换为原始值, 注意老版本中转换为原始值的方法名叫toRaw
    print(Method4.Sub.rawValue)
    
    
    // 原始值转换为枚举值
    enum Method5: String{
        case Add = "add", Sub = "sub", Mul = "mul", Div = "div"
    }
    
    // 通过原始值创建枚举值
    /*
    注意: 
    1.原始值区分大小写
    2.返回的是一个可选值,因为原始值对应的枚举值不一定存在
    3.老版本中为fromRaw("add")
    */
    let m2 = Method5(rawValue: "add")
    print(m2)
    
    //func chooseMethod(op:Method2)
        func chooseMethod(op:String)
    {
        // 由于返回是可选类型, 所以有可能为nil, 最好使用可选绑定
        if let opE = Method5(rawValue: op){
            switch (opE){
            case .Add:
                print("加法")
            case .Sub:
                print("减法")
            case .Mul:
                print("除法")
            case .Div:
                print("乘法")
            }
        }
    }
    
    
    /*
    枚举相关值:
    可以让枚举值对应的原始值不是唯一的, 而是一个变量.
    每一个枚举可以是在某种模式下的一些特定值
    */
    enum lineSegmentDescriptor{
        case StartAndEndPattern(start:Double, end:Double)
        case StartAndLengthPattern(start: Double, length:Double)
    }
    
    var lsd = lineSegmentDescriptor.StartAndLengthPattern(start: 0.0, length: 100.0)
    lsd = lineSegmentDescriptor.StartAndEndPattern(start: 0.0, end: 50.0)
    // 利用switch提取枚举关联值
    /*
    switch lsd
    {
        case .StartAndEndPattern(let s, let e):
            print("start = \(s) end = \(e)")
        case .StartAndLengthPattern(let s, let l):
            print("start = \(s) lenght = \(l)")
    }
    */
    
    // 提取关联值优化写法
    switch lsd
    {
            case let .StartAndEndPattern(s, e):
                print("start = \(s) end = \(e)")
            case .StartAndLengthPattern(let s, let l):
                print("start = \(s) lenght = \(l)")
    }
    展开全文
  • Swift上调用OC封装好的一个model,里面有个枚举类型: typedef enum {  kCOManageCreater = 1, //创始人  kCOManageManager, //管理员  kCOManageNormal,  //普通用户 }kCOManagerType; 然后再s
  • Swift中的枚举OC中的枚举强大得多, 因为Swift中的枚举是一等类型,它除了可以定义枚举值外,还可以在枚举中像类一样定义属性和方法 1. 简单枚举定义和使用 //定义枚举使用enum关键字 enum Method{ case Add ...
  • swift enum 和OC兼容

    2015-07-09 16:25:22
    虽然说swift是基于OC的,但是swiftOC还是有很多去别的,今天我们来说一下枚举变量 下面是某个免费短信验证码的验证方法的返回状态 enum SMS_ResponseState { SMS_ResponseStateFail = 0, SMS_...
  • 1. Swift枚举基本概念 Swift中的枚举比OC中的枚举强大, 因为Swift中的枚举是一等类型, 它可以像类和结构体一样增加属性和方法 格式: enum Method{ case 枚举值 }enum Method{ case Add case Sub case Mul case...
  • Swift 枚举

    2015-08-25 19:14:59
    枚举是一种常见的数据类型,他的主要功能就是将某...使用枚举可以防止用户使用无效值,同时该变量可以使代码更加清晰。 //1 枚举的声明 //我们直接看示例,一般有两种方式,一个一个写,还有可以写一行 enum O
  • Swift 枚举(七)

    2014-06-20 16:09:14
    枚举 1.枚举语法 用enum并把定义放在大括号内,枚举中被定义的值是枚举的成员,case关键字表示新定义的一个成员 enum SomeEnumeration {  // enumeration definition goes here } enum CompassPoint { ...
  • OC里面我们经常遇到一些枚举值可以多选的,需要用或运算来把这些枚举值链接起来,这样的我们称为位移枚举,但是在swift里面却不能这么做,下面来讲解一下如何在swift里面使用 OC的位移枚举的区分//位移枚举 ...
  • ENUM-枚举
  • oc中的枚举定义

    2019-07-10 02:04:29
    该方法定义的枚举OC会自动把其转换成合适当前版本的枚举。如果枚举值可合并的话 NS_ENUM 要改成NS_OPTIONS,枚举值默认为0-n也可通过在值名后加入=number方式自定义。 转载于:...
  • Objective-C 枚举 typedef NS_ENUM(NSInteger,LineDirection){ LineDirectionTop = 1 << 0, LineDirectionBottom = 1 << 1, LineDirectionLeft = 1 << 2, ...
  • Swift中的枚举

    2016-10-11 16:24:59
    枚举使用case关键字来定义新的成员,可以一行写但是要以逗号分开也可以多行写。 在Swift中枚举类型有个关联值,对于枚举成员来说它可以有任意类型的关联值://定义枚举(关联值) enum Value { //使用关键字case ...
  • OC 调用 Swift 方法

    2018-09-06 11:47:34
    1.新建Swift文件之前做以下设置 2.创建Swift文件后,会提示创建桥接文件,点击创建 3.Swift 类 import Foundation class RealmManager: NSObject { override init() { super.init() } @objc func ...
  • Swift中的枚举enum。在C语言中,甚至OC等其他高级语言中,都是把enum枚举的值当作是一个int整数来替代。而在Swift中,它的case就是它的值本身,无需刻意地定义一个值来代表它。
  • 枚举我们大家都不太陌生了,我们在C或者OC中经常使用到,在这里简单记录下Swift枚举使用方法. 枚举的定义 “在 Swift 中,枚举类型是一等(first-class)类型。它们采用了很多在传统上只被类(class)所支持的特性...
  • Swift中的枚举OC中的枚举强大得多, 因为Swift中的枚举是一等类型,它除了可以定义枚举值外,还可以在枚举中像类一样定义属性和方法 1. 简单枚举定义和使用 //定义枚举使用enum关键字 enum Method{ case ...
  • SwiftOC 互相调用

    2018-07-20 16:19:07
    Swift 调用 OC 分为两种常见情况,一种是直接在 Application 的 project 中使用;另一种情况是,在 framework 开发中使用。 对于互相调用的原理,如下图所示,更详细的内容可以参考 《Using Swif with Cocoa and ...
1 2 3 4 5 ... 20
收藏数 2,204
精华内容 881
关键字:

oc swift使用 枚举