我在iOS上运行cycript并在App中调用内部API。 我有一个从调用返回的类型为JavaUtilArrays_ArrayList的变量
cy# l
"[<FieldDescriptor: 0x170a74fc0>, <FieldDescriptor: 0x170a75a00>, <_FieldDescriptor: 0x170a76200>, <FieldDescriptor: 0x170a76240>, <FieldDescriptor: 0x170a76280>]"
我想迭代这个列表来访问元素(最好用#element)
一般来说,我会像这样迭代
for (x of [1,2,3]) {x+x}
然而,尝试
for (e of l){e}
或
for(e in l ){l[e]}
导致抛出新错误(“*** _assert(static_cast(static_cast(value))== value):../ Execute.cpp(347):CYCastJSValue”)
此外,访问单个元素
l[0]
返回nothings
我对cycript很新。任何人都可以帮我吗?
答案 0 :(得分:0)
JavaUtilArrays_ArrayList只是另一个随机的Objective-c对象。 我使用类转储来查找其定义和访问元素的适当方法。 然后我使用目标c语法[l getvaluefunc:]
调用该方法