经过 [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执行内存池清理时才会释放。若是你在javascript 代码中建立了
一个很大的oc对象,该对象的生命周期并不如你想象的及时释放。生命周期