我在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 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.
答案 0 :(得分:4)
在调试代码时,您不应该在Release mode
。
如果您想查看变量值,则必须在Debug mode
。步骤是
Edit scheme
Run
设置Info tab
然后Build Configuration
Debug
如果它是“释放”那就是你看到的所有内容。
如果仍然无效,请尝试在项目Build Settings
Strip debug symbols during copy
设为NO
Optimization Level
至None -O0
答案 1 :(得分:2)
尝试在Build Settings中将Deployment Postprocessing设置为NO并检查。
答案 2 :(得分:2)
确保在Build Settings中为调试模式将Link-Time Optimization
设置为No。