码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2016-08-03 18:32:04      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

#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执行之前执行。

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

标签:

原文地址:http://www.cnblogs.com/wobuyayi/p/5733876.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!