美文网首页
枚举类型的讲解

枚举类型的讲解

作者: helinyu | 来源:发表于2017-04-28 10:10 被阅读33次

    有关oc中的枚举类型
    1、不推荐使用,因为不能够使用一种类型的方式表示枚举;
    enum
    {
    TMEnumTestOne,
    TMEnumTestTwo,
    };

    enum 类型

    typedef enum
    {
    TMEnumTestOne,
    TMEnumTestTwo,

    } TMEnumTest;

    enum TMEnumTest
    {
    TMEnumTestOne,
    TMEnumTestTwo,
    };
    typedef enum TMEnumTest TMEnumTest;
    将枚举描述为一个类型TMEnumTest。

    这种写法也有局限性,在作为函数参数时,如果传入NSInteger类型的数据,则需要强制转换,否则会有类型不匹配的警告,所以这种方式也不推荐。

    老式enum写法

    enum
    {
    TMEnumTestOne,
    TMEnumTestTwo,
    };
    typedef NSUInteger TMEnumTest;
    这种写法可以指定TMEnumTest的类型,并且作为函数参数时,传入的值不需要进行强制类型转换。
    但是这种写法不会检查枚举的正确性,是好是坏需要自己判断,

    新式enum写法
    (一般都是下面的第一种写法,好像第二种写法也是有的,不过我很少这样子写,写一下可以推荐使用这种方法,因为可以使用& 的方式表示两种枚举的情况而不用一个一个的来写了)
    typedef NS_ENUM(NSUInteger, TMEnumTest)
    {
    TMEnumTestOne,
    TMEnumTestTwo,
    };

    typedef NS_OPTIONS(NSUInteger, TMEnumTest)
    {
    TMEnumTestOne = 0,
    TMEnumTestTwo = 1 << 0,
    };

    NS_ENUM和NS_OPTIONS本质是一样的,仅仅从字面上来区分用途。NS_ENUM是通用情况,NS_OPTIONS一般用来定义“位枚举”。位枚举应该是位移动来进行完成的。
    这种写法同样作为函数参数时,传入的值不需要进行强制类型转换。但是也同样不会检查枚举的正确性,和 老式enum写法 一样,
    但是不同的是,新式enum写法 在使用switch时,会进行值的检测,如果枚举中无此值,则会弹出警告,如下图。这种方式见仁见智了。本人推荐这种写法。

    1. 枚举最大值
      对于一般的枚举,要获取枚举的最大值是很难的,因为随着枚举的扩充,最大值在不断变化,这时推荐使用一个固定的枚举表示最大值,例如:
      typedef NS_ENUM(NSUInteger, TMEnumTest)
      {
      TMEnumTestOne,
      TMEnumTestTwo,

      TMEnumTestMax, // 表示最大值
      };
      这样就可以使用TMEnumTestMax表示枚举TMEnumTest的最大值了。

    1. 位枚举
      位枚举是一种特殊的枚举,在apple的类中使用的很多,例如NSStringCompareOptions等。
      typedef NS_OPTIONS(NSUInteger, TMEnumTest)
      {
      TMEnumTestOne = 0, // 0
      TMEnumTestTwo = 1 << 0, // 1
      TMEnumTestThree = 1 << 1, // 2
      TMEnumTestFour = 1 << 2, // 4
      };
    • 位枚举的特点是可以使用位运算来处理枚举值,实际使用中可以用一个变量存储多个枚举值,表示互不影响的多个设置。
    Paste_Image.png

    可以知道枚举类型中一个枚举变量可以包括多个枚举值,而不是我们单纯的认为一个枚举变量只能够有一个枚举值。

    但是有0 就会出现问题了,也就是与0 都会出现错误的。
    为了不出现面的情况,我们可以将枚举类型从1开始,而不是从0开始,也就是位枚举类型是从值为1开始的。

    动效:
    http://www.cocoachina.com/design/20160729/17237.html
    这个就是关于UI设计的一种美感

    二维码的效果:
    http://www.cocoachina.com/swift/20160729/17221.html
    二维码应该是怎么样进行开发的,也即是如何进行完成的。
    好像这个二维码不是很好用的,也就是这个二维码应该是python的有关内容,通过网站来实现。

    有关于UIwindow的设置
    可window不管是storyboard和xib都是可以的,只要设置window的背景颜色是透明的。
    同时也要注意hidden设置为false,就会弹出来。

    p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #e4af0a}p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'; color: #454545; min-height: 14.0px}p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.PingFang SC'; color: #454545}span.s1 {font: 12.0px '.PingFang SC'}span.s2 {font: 17.0px 'PingFang SC'}span.s3 {font: 17.0px 'Helvetica Neue'}span.s4 {font: 12.0px 'Helvetica Neue'}

    UIView animation (动画效果)
    http://www.cocoachina.com/ios/20160727/17199.html

    reactiveCocoa swift首先要知道reactive oc 是怎么使用的
    支持swift 2.x和oc
    http://blog.devtang.com/2014/02/11/reactivecocoa-introduction/
    http://www.cocoachina.com/swift/20160727/17210.html
    据说:reactivecocoa + mvvm的模式进行开发
    一种监听信号量的处理方式

    runloop 深入研究**** Runloop ****与线程保活
    http://www.cocoachina.com/ios/20160728/17220.html

    技术点:
    http://www.code4app.com/thread-9683-1-1.html

    简书中有一个直播的技术框架
    http://www.jianshu.com/p/3b956bbeeb47

    http://www.jianshu.com/p/b3e7fa514ab7
    webView的使用

    通讯交流很多人都是在使用“环信”,是什么东东,就是qq聊天的一种方式;


    、需要阅读一下swiftJSON 这个类
    有关插屏幕的设置,为什么不用xib的方式进行设置呢?那是因为总是实现不了背景的透明,所以这里应该都是通过storyBoard来实现透明的,有一点可以的话,再进
    行修改。
    插屏如果要重写的时候,应该要注意一下是背景颜色以及相关的按钮没有显示,可能是因为关联到其他的工程的组件上面了,所以这个要注意一下。
    这个我也不知道为什么,所以应该尽可能的避免其他的工程打开,它们似乎有自动联系起来。
    为什么swift中let 这样子用回出现错误????

    查阅里面的阅读内容
    deinit 相关的内容退出的时候

    总结:
    1、广告的弹出,就是内容上的弹出,为什么会显示不出俩,可能联系到其他的地方
    还是会不出现半透明的现象,如果没有出现想要的结果,就设置一下window的backgroundColor 为透明uicolor.clearcolor
    总结:
    1、我们在不适用storyboard进行加载的时候,经常也是这样子的,需要设置window.backgroundColor = uicolor.cleancolor

    2、swift中应该注意一下是什么?尤其是? 的使用,swift的语法

    3、swift语言特性,是面向对象语言
    4、collecitionView 的显示,就是内容上的显示== 来判断是不是这个collectionView,通过scrollview的转化也是没有问题的,
    5、window的使用,尤其是在弹层上面,这个东东应该是尽可能使用storyBoard,而不是用xib,xib不发实现别经是透明或者半透明。
    6、逻辑上的优化尽可能的封装。

    有个问题:
    1、就是oc中如果没有值的时候,我们都是适用什么呢?一般都是if来进行判断一下,然而数据解析我们都是适用jsonModel就是避免为空的时候出现崩溃;
    2、swift中就有了optional来进行检查,没有值也不会报错。

    swift中的optional的作用或者用法:

    复习:
    1、就是约束的计算(oc语言里面),这里有关约束的优先级,还有自动布局除了storyBoard还有几个组件是通过代码来进行完成的。
    2、尤其是在oc上面容易出现可能是有nil的情况,nsstring的类型,什么时候是否为nil需要判断一下是什么?
    3、 有关缓存,项目里面都是使用sqlite的小型数据库
    4、view上面的组件,laodview进场使员工的,layoutsubview() 等等方法;
    5、数据基本上都是在后台上拉取的,这个过程是怎么样进行处理的,
    6、进度哪里来的数据在内存中传递,我们是可以进行处理进度条以及有关的约束内容。
    7、pageViewcontroller 、ADinterstialAd 这两个新的东东是什么鬼;

    苹果历代系统版本取名字

    相关文章

      网友评论

          本文标题:枚举类型的讲解

          本文链接:https://www.haomeiwen.com/subject/jbeozttx.html