NSRange 只是一个 C 结构体。我想在 Xcode 的 lldb 中的断点处创建一个临时的。
专门用于 NSArray 方法objectAtIndex:inRange:
这是行不通的。
(lldb) expr NSRange $tmpRange = (NSRange){0,4}
(lldb) expr $tmpRange
(NSRange) $tmpRange = location=0, length=4
(lldb) expr -o -- [items indexOfObject:item4 inRange:$tmpRange]
error: no matching constructor for initialization of 'NSRange' (aka '_NSRange')
error: 1 errors parsing expression
我的代码有一个名为 NSRange varbadRange
在断点处,并在工作中传递该断点。因此:
(lldb) expr -o -- [items indexOfObject:item4 inRange:badRange]
0x7fffffffffffffff
(lldb) expr badRange
(NSRange) $1 = location=0, length=3
到底是怎么回事?
Thanks.
在 OS X 项目中工作时,在调试器中创建 NSRange 工作正常,但不适用于 iOS 项目。它在 iOS 上不起作用的原因是,即使 Foundation 提供了声明该结构的头文件,它也没有公开任何相应的符号。基本上,在 iOS 上,NSRange 只是一个前向声明,我不知道实现的真正符号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)