我知道任务返回一个标准错误的值,我可以通过输入"echo $?"看到 在手动运行任务后在终端中.
现在这段代码:
[aTask launch];
[aTask waitUntilExit];
int status = [aTask terminationStatus];
Run Code Online (Sandbox Code Playgroud)
看起来不错,但gdb说状态是0x0的位置,无法访问.有人知道Xcode中NSTask对象中的任何错误吗?难道我做错了什么?
谢谢你的回复.
实际上,任务执行正常并通过返回状态为0退出并显示成功.当您在终端中回显结果时,它是否为0?
根据您的问题发表评论:
这是来自我的gdb,在执行上面的代码行之后:(gdb)po status无法访问地址0x0处的内存 - demonslayer319
一个int不是一个对象; 因此,po status不会奏效. po通过发送-description到对象来工作,但它的方式与普通的旧objc_msgSend()电话略有不同.因此,当gdb尝试将值0视为对象的地址时,gdb会检测到它可能无效,因为0无法解除引用地址.
试试吧p status.
(并且,是的,任务可能是零 - 你没有正确地创建任务 - 因此,nil-eats-message导致状态为0)
| 归档时间: |
|
| 查看次数: |
1108 次 |
| 最近记录: |