• iOS中的#ifdef DEBUG为什么会在didFinishLaunchingWithOptions之前执行


    #ifdef DEBUG
    ...程序段1...
    #else
    ...程序段2...
    #endif

    这表明如果标识符DEBUG已被#define命令定义过则对程序段1进行编译;否则对程序段2进行编译。#ifdef 的意思是 if define(如果已经#define过)。同理#ifndef的意思就是if not define(如果没有#define),与#ifdef意思相反。

    而DEBUG是在哪里定义的呢?

    在 "Target > Build Settings > Preprocessor Macros > Debug" 里有一个"DEBUG=1"。

    当你Run, Test, Analyze时,就属于debug mode,当Profile, Archive时就属于release mode。见你的iOS project的"Edit Scheme..."

    由于 #ifdef DEBUG会在编译阶段就执行完毕,因此在AppDelegate执行开始之前就已经编译完成,所以它会在didFinishLaunchingWithOptions执行之前执行。

  • 相关阅读:
    红黑树-插入篇
    并查集
    Rabin-Karp【转载】
    KMP
    怎样花两月时间去应聘互联网公司 [转载]
    c++ 智能指针【转载】
    java序列化
    Web页面导出Excel表格
    基于jquery-UI的日期选择器
    Doc命令
  • 原文地址:https://www.cnblogs.com/wobuyayi/p/5733876.html
Copyright © 2020-2023  润新知