#pragma swift_swift #pragma mark - - CSDN
精华内容
参与话题
  • oc中 用#pragma mark 函数说明,来生成一个函数的说明X swift // MARK: 说明 // FIXME: 添加标记2 注意别忘了(:)号

    oc中
    用#pragma mark 函数说明,来生成一个函数的说明X
    swift
    // MARK: 说明
    // FIXME: 添加标记2

    注意别忘了(:)号

    展开全文
  • Swift 中的#pragma Mark

    2017-11-13 11:07:50
    众所周知,大家在OC中对代码进行逻辑组织 用的是#pragma mark - ,生成分隔线用#pragma mark 函数说明,来生成一个函数的说明X,下面介绍Swift下的标识: // MARK: - 生成分隔线// FIXME:生成分隔线// TODO: ...

    众所周知,大家在OC中对代码进行逻辑组织 用的是#pragma mark - ,生成分隔线用#pragma mark 函数说明,来生成一个函数的说明X,下面介绍Swift下的标识:

    // MARK: - 生成分隔线
    // FIXME:生成分隔线
    // TODO:

    切记不要忘记后面的:号

    展开全文
  • 在开发过程中,我是比较反感这个⚠️,但是我们的开发离不开它,他能让我们注意一些可能产生错误的地方去修复。在一个阶段完成后,大家都要去处理这个警告的...#pragma clang diagnostic ignored 来消除警告。 我...

                   在开发过程中,我是比较反感这个⚠️,但是我们的开发离不开它,他能让我们注意一些可能产生错误的地方去修复。在一个阶段完成后,大家都要去处理这个警告的问题,把可能出错的地方修正。在这个过程中,可能会有一些警告,我们能够确定它不会产生影响,并且确认需要这么做的时候。我们就可以使用

    #pragma clang diagnostic ignored  

    来消除警告。

    我们常见的情况有:


    1. 忽略参数非空检查("-Wnonnull"),我们的头文件这样定义:

    -(instancetype _Nullable)initWithUrl:(NSString *_Nonnull)url param:(NSDictionary *_Nullable)param NS_DESIGNATED_INITIALIZER;


    在我们的实现文件中,初始化方法:

    - (instancetype)init{
    #pragma clang diagnostic push 
    #pragma clang diagnostic ignored "-Wnonnull"
        return [self initWithUrl:nil param:nil];
    #pragma clang diagnostic pop
    }


    2.  方法弃用警告("-Wdeprecated-declarations")

    #pragma clang diagnostic push    
    #pragma clang diagnostic ignored "-Wdeprecated-declarations"         
    [TestFlight setDeviceIdentifier:[[UIDevice currentDevice] uniqueIdentifier]];    
    #pragma clang diagnostic pop     
    

    那么 #pragma clang diagnostic ignored  的参数 我们怎么获取呢,光凭记忆的话 就是神人了,成千上万个警告类型,头痛。

    第一步:

    xcode点击⚠️,在出现的警告列表中找到自己要消除的那个,右键选择Reveal in Log(在日志中显示)

    ---/Common/MenuBar/BTLinkChooseView.m:227:44: warning: null passed to a callee that requires a non-null argument [-Wnonnull]
                self.modifyCategoryCallBack(nil);
                                            ~~~^
    ---/Common/MenuBar/BTLinkChooseView.m:49:17: warning: method definition for 'layoutSubviewsContentViewWithIsHidden:' not found [-Wincomplete-implementation]
    @implementation BTLinkChooseView
                    ^
    In file included from 
    ---/Common/MenuBar/BTLinkChooseView.m:9:
    ---/Common/MenuBar/BTLinkChooseView.h:25:1: note: method 'layoutSubviewsContentViewWithIsHidden:' declared here
    - (void) layoutSubviewsContentViewWithIsHidden:(BOOL) isHidden;
    ^
    25 warnings generated.
    

    在相应的警告后面,我就可以看到这个警告类型了 [-Wincomplete-implementation]

    搞定 !

    展开全文
  • #pragma warning 说明

    2016-10-09 09:57:08
    1 常用去警告:  #pragma warning(disable:4035) //no return value ... #pragma warning(disable:4068) // unknown pragma  #pragma warning(disable:4201) //nonstandard extension used : n
    1  常用去警告:
             #pragma warning(disable:4035) //no return value
             #pragma warning(disable:4068) // unknown pragma
             #pragma warning(disable:4201) //nonstandard extension used : nameless struct/union
             #pragma warning(disable:4267)
             #pragma warning(disable:4018) //signed/unsigned mismatch
             #pragma warning(disable:4127) //conditional expression is constant
             #pragma warning(disable:4146)
             #pragma warning(disable:4244) //conversion from 'LONG_PTR' to 'LONG', possible loss of data
             #pragma warning(disable:4311) //'type cast' : pointer truncation from 'BYTE *' to 'ULONG'
             #pragma warning(disable:4312) //'type cast' : conversion from 'LONG' to 'WNDPROC' of greater size
             #pragma warning(disable:4346) //_It::iterator_category' : dependent name is not a type
             #pragma warning(disable:4786)
             #pragma warning(disable:4541) //'dynamic_cast' used on polymorphic type
       #pragma warning(disable:4996)  //忽略 warning C4996: 'strcpy'/error C4996
             #pragma warning(disable:4200) //zero-sized array in struct/union
             #pragma warning(disable:4800) //forcing value to bool 'true' or 'false' (performance warning)
     
     
           2  常用用法:

            #pragma   warning(   push) 
            #pragma   warning(   disable:XXXX)    //
     

             需要消除警告的代码

            #pragma   warning(   pop   )

     

           or:

            #pragma   warning(disable:XXXX) 


                需要消除警告的代码

            #pragma   warning(enable:XXXX)//  如果出现:'enable '   not   valid   specifier 用 #pragma   warning(default:XXXX)  代替试试

           3 网上资料:
      

            #pragma 支持 
            开发人员可以使用 #pragma 指令将警告作为错误处理;还可以启用或禁用警告,如下面的示例所示:
            #pragma warning (error: 6260) 
            #pragma warning (disable: 6011) 
            #pragma warning (enable: 6056)

     
    #pragma warning (disable : 4996)// disable deprecated warning 
    和#pragma warning (default : 4996) 
    是干啥用的呢?

    1.#pragma warning(disable: n) 
    将某个警报置为失效 
    2.#pragma warning(default: n) 
    将报警置为默认 
    使用VS2005,编译提示"xxxxxx被声明为否决的 
    这是MS新的C库提供的带有检查的函数,有内存溢出检测。可以防止一部分程序bug, 抵制缓冲区溢出攻击(buffer overflow attack). 但是应该速度上有牺牲。 
    解决办法 
    1.所以在你确信安全的情况下,可以用#pragma warning(disable: 4996)消除这个警告 
    2.建议使用_s的缓冲区安全的版本,而不是简单的屏蔽警告。 
    #pragma warning (disable: 4996) // 太多警告看着厌烦无视之 
    关于#pragma warning
    1.#pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),
    不是是对整个工程的所有文件有效。当该文件编译结束,设置也就失去作用。
        2.#pragma warning(push) 存储当前报警设置。
    #pragma warning(push, n) 存储当前报警设置,并设置报警级别为nn为从14的自然数。
        3.#pragma warning(pop)
    恢复之前压入堆栈的报警设置。在一对pushpop之间作的任何报警相关设置都将失效。
        4.#pragma warning(disable: n)  将某个警报置为失效
        5.#pragma warning(default: n)  将报警置为默认
        6.某些警告如C4309是从上到下生效的。即文件内#pragma warning从上到下遍历,依次生效。
     
    例如:
    void func()
    {
          #pragma warning(disable: 4189)
          char s;
          s = 128;
          #pragma warning(default: 4189)
          char c;
          c = 128;
    }
    s = 128不会产生C4309报警,而C4309会产生报警。
          7.某些警告例如C4189是以函数中最后出现的#pragma warning设置为准的,其余针对该报警的设置都是无效的。
    例如:
    void func()
    {
          #pragma warning(disable: 4189)
          int x = 1;
          #pragma warning(default: 4189)
    }
    C4189仍然会出现,因为default指令是函数的最后一条。在该文件内的其他函数中,如果没有重新设置,C4189也是以#pragma warning(default: 4189)为准。如果重新设置,同样是按照其函数中的最后一个#pragma warning为准。
          8.某些警告(MSDN认为是大于等于C4700的警告)是在函数结束后才能生效。
    例如:
    #pragma warning(disable:4700)
    void Func() 
    {
    int x;
    int y = x;   
              #pragma warning(default:4700)   
               int z= x;
    }
    y = xz = x都不会产生C4700报警。只有在函数结束后的后的另外一个函数中,#pragma warning(default:4700)才能生效。
    展开全文
  • 在Objective-C里,为了让代码组织的有序也方便用control+6的快捷键在Xcode中查找...但是,这个东西在Swift里对应的是什么呢? 首先简单了很多,不用再写那么多的字母了。。。这些landmark是//MARK:(=>#pragma)、//T
  • 在OC中对代码进行分隔及标识 使用#pragma mark - ,生成分隔线 用#pragma mark 函数说明,来生成一个函数的说明X 但在swift中,这个语法就不支持了,毕竟它是属于C的语法,于是就有了新的一些语法,如:// MARK: /...
  • 接触swift,想实现如OC代码里面的#pragma mark 和 #waring的效果 一、swift代码实现OC中#pragma mark的效果 #WARK: 你备注的内容 效果见下图: 二、swift代码实现OC中#waring的效果 效果如下:
  • //MARK:冒号后 添加注释说明 - 添加横线 列如下//MARK:- 初始化//FIXME: 表示此处有bug 或者要优化 列如下//TODO: 一般用于写到哪了... // #warning swift2.0 中下面发放替换 @available(iOS, deprecated=1.0, message=
  • 1、oc中使用的注释 一般 //单行注释、 /* 多行注释 */  #pragma marks Comments containing: MARK: TODO: FIXME: !!!: ?...除了使用 #pragma mark -添加分割线之外,
  • #pragma mark in Swift?

    2016-10-18 13:26:17
    In Objective C, I can use #pragma mark to mark sections of my code in the symbol navigator. Since this is a C preprocessor command, it's not available in Swift. Is there a stand-in for this in Swift, ...
  • iOS开发之旅–Swift3中的注释、警告、提示写法(#pragma mark)1、在之前的iOS开发中,我们经常使用#pragma mark来注释,使用#warning打警告,但是在swift3中不支持了 //TODO: //MARK: //FIXME:
  • 在2017年9月14号入职新的公司,新的公司开发语言使用的是Swift,此时使用的swift语言是3.0,因此博客的swift语言的整理是基于swift3.0的,本博客持续更新。 在OC语言中我们通常使用 #pragma mark - 来注释函数,但是...
  • 之前在OC里面用pragma mark 来分割自己写的代码,现在换成swift之后,Xcode6里面自动生成的pragma mark 都被注释掉了,但是w
  • 一、swift代码实现OC中#pragma mark的效果,这个事系统自带的,不需要单独设置 二:下面我们看下#waring的设置,这个需要手动添加脚本,如图标注三步走 下面看下效果 最后写下内容,复制粘贴...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • swift 中#pragma mark 表示方法

    千次阅读 2015-09-22 14:59:21
    众所周知,大家在OC中对代码进行逻辑组织 用的是#pragma mark - ,生成分隔线 用#pragma mark 函数说明,来生成一个函数的说明X 但在swift中,这个语法就不支持了,毕竟它是属于C的语法,于是就有了新的一些语法,...
1 2 3 4 5 ... 20
收藏数 3,033
精华内容 1,213
关键字:

#pragma swift