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

相關文章
相關標籤/搜索