在调试器中显示Xcode 6奇怪(null)对象

时间:2014-10-29 14:13:42

标签: ios objective-c xcode debugging

我在Xcode 6调试器中看到了一个奇怪的行为。 我使用以下代码创建了一个单例共享实例:

+ (instancetype)shared 
{
    static DataBaseManager *sharedInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
    sharedInstance = [[DataBaseManager alloc] init];
    });

   return sharedInstance;
}

在通过调用如下方法初始化对象之后:

DataBaseManager *manager = [DataBaseManager shared];
NSLog(@"");

我在“NSLog”上放置了一个断点,我看到了以下调试器状态:

Xcode 6 debugger screen capture

我已确定我正在启动调试模式,并且构建设置没问题,请按照以下问题进行操作:Xcode debugger doesn't print objects and shows nil, when they aren't

有关为何发生这种情况的任何想法? 这是我第一次见到这种奇怪的行为。 任何帮助将非常感激。

**UPDATE**

A bug was reported to apple bug report system.
The bug status is: Duplicate of 17164538 (Closed) 

so it is probably a known bug in Xcode.

3 个答案:

答案 0 :(得分:4)

在调试代码时,您不应该在Release mode

如果您想查看变量值,则必须在Debug mode。步骤是

  1. 点击开始/停止按钮附近左上角的项目名称
  2. 进入Edit scheme
  3. 进入Run设置
  4. 进入Info tab然后Build Configuration
  5. 将其设为Debug
  6. 如果它是“释放”那就是你看到的所有内容。 如果仍然无效,请尝试在项目Build Settings

    中关注
    1. Strip debug symbols during copy设为NO
    2. Optimization LevelNone -O0

答案 1 :(得分:2)

  

尝试在Build Settings中将Deployment Postprocessing设置为NO并检查。

答案 2 :(得分:2)

确保在Build Settings中为调试模式将Link-Time Optimization设置为No。