Xcode 5调试器不打印对象

时间:2013-09-25 13:05:05

标签: ios objective-c xcode xcode5 lldb

我在升级到xcode 5之后使用lldb调试器从控制台调试时出现问题。我曾经输入po object并且它曾经工作正常,但现在我收到了错误

error: instance method 'performBlock:afterDelay:' has incompatible result types in different translation units ('id' vs. 'void')
note: instance method 'performBlock:afterDelay:' also declared here

这里是堆栈的screenshot,调试器停在的代码,可视化调试器和调试器控制台中的值。可能是什么问题,它是xcode 5中的一个错误还是我可以做些什么来纠正这个?

1 个答案:

答案 0 :(得分:7)

我找到了解决此问题的方法。问题是我的个人内部框架在NSObject上的一个类别中声明了一个名为:

的方法
- (void)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;

但第三方框架(此处为BlocksKit)声明了同样的方法:

- (id)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;

这两个似乎干扰了LLDB的运行时并且产生了这个奇怪的消息。为了解决这个问题,我刚刚更改了其中一个方法名称。如果这对您有用,请告诉我。