經過 [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對象,該對象的生命週期並不如你想象的及時釋放。生命週期