0

我在 iOS 上运行 cycript 并在应用程序中调用内部 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]}

导致 throw new Error("*** _assert(static_cast(static_cast(value)) == value):../Execute.cpp(347):CYCastJSValue")

此外,访问单个元素

l[0]

无所作为

我对 cycript 很陌生。有人可以帮我吗?

4

1 回答 1

0

JavaUtilArrays_ArrayList 只是另一个随机的objective-c 对象。我使用类转储来查找其定义和访问元素的适当方法。然后我使用目标 c 语法 [l getvaluefunc:] 调用该方法

于 2018-03-24T22:22:03.950 回答