JSPatch 的坑

返回值为 Struct 类型时

经过 [methodSignature methodReturnType] 获取到 CMDeviceMotion 的gravity 属性 返回值类型 为 {?=ddd}。javascript

而正常状况下,例如,咱们获取 view的frame,返回值类型为 {CGRect={CGPoint=dd}{CGSize=dd}}java

缘由:当定义 struct 结构体时,以下定义,则 [methodSignature methodReturnType] 检测到该返回值类型为 {?=ddd}
由于下面这样只是定义了一个tag name 为 CMAcceleration 的结构体,tag name 不是类型名,因此methodReturnType获取不到该类型名code

typedef struct {
    double x;
    double y;
    double z;
} CMAcceleration;

若是是下面定义struct 结构体,则能够正确检测返回值类型对象

struct CMAcceleration {
    double x;
    double y;
    double z;
};
typedef struct CMAcceleration CMAcceleration;

JavaScriptCore 是垃圾回收,OC则是引用计数

JavaScriptCore 会持有oc 对象,直到JavaScriptCore执行内存池清理时才会释放。若是你在javascript 代码中建立了
一个很大的oc对象,该对象的生命周期并不如你想象的及时释放。生命周期

相关文章
相关标签/搜索