我在升级到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中的一个错误还是我可以做些什么来纠正这个?
答案 0 :(得分:7)
我找到了解决此问题的方法。问题是我的个人内部框架在NSObject
上的一个类别中声明了一个名为:
- (void)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;
但第三方框架(此处为BlocksKit)声明了同样的方法:
- (id)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;
这两个似乎干扰了LLDB的运行时并且产生了这个奇怪的消息。为了解决这个问题,我刚刚更改了其中一个方法名称。如果这对您有用,请告诉我。