You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在lldb中调用NSArray的enumerateObjectsUsingBlock方法?

报错原因

你执行的命令存在语法错误:Objective-C 中 block 的返回类型需要写在^符号之后,你将void放在了^之前,不符合语法规则,所以lldb解析失败。

解决方案

以下三种方案可根据你的需求选择:

  • 方案1:修正语法直接调用enumerateObjectsUsingBlock
    无返回值的block可以直接省略返回类型声明,调整后的命令如下:
    (lldb) expr -- [self.choiceQuestion.allNewRecommenedItems enumerateObjectsUsingBlock:^(id obj, NSUInteger index, BOOL *stop) { NSLog(@"%@", obj); }]
    
  • 方案2:用快速枚举实现遍历
    不想写block的话可以直接用for-in循环,写法更简单:
    (lldb) expr -- for (id obj in self.choiceQuestion.allNewRecommenedItems) { NSLog(@"%@", obj); }
    
  • 方案3:仅查看数组所有元素直接用po命令
    如果你不需要额外的遍历逻辑,只是要打印数组全量内容,直接执行以下命令即可:
    (lldb) po self.choiceQuestion.allNewRecommenedItems
    
补充提示

如果需要在block中实现更复杂的逻辑(如条件判断终止遍历),只需遵循block的语法规则即可:需要显式声明返回值时,将返回类型写在^符号之后,比如^NSInteger(...)。

内容的提问来源于stack exchange,提问作者ximmyxiao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:54:01