【问题标题】:Call a block from XCode's debugger从 XCode 的调试器中调用一个块
【发布时间】:2015-09-09 15:40:06
【问题描述】:

我可以从 XCode 调试器中调用一个块吗?我刚试过:

po zoomCurve(0)

类型:

typedef CGFloat (^STAnimationCurveBlock)(CGFloat t);

调试器说:

错误:调用的对象类型“STAnimationCurveBlock”(又名“__block_literal_generic *”)不是函数或函数指针 error: 1 解析表达式错误

【问题讨论】:

  • 如果您使用 lldb,请查看此答案:stackoverflow.com/questions/10304090/…
  • lldb 是默认调试器吗,或者,我怎么知道我在使用哪个?
  • 啊——无论如何,转换块指针对我有用。这很烦人!

标签: xcode debugging objective-c-blocks


【解决方案1】:

this answer 中所述,调试器似乎不知道块的类型。您需要将块转换为其类型。在特定情况下,您有:

po ((CGFloat(^)(CGFloat))zoomCurve)(0.9)

由于某种原因,转换为 typdef 类型也不起作用,并给出相同的错误。具体来说,这将给出相同的错误:

po ((STAnimationCurveBlock)zoomCurve)(0.9)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-27
    • 2019-03-05
    • 2018-03-22
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    相关资源
    最近更新 更多