• JSPatch 的坑


    返回值为 Struct 类型时

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

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

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

    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对象,该对象的生命周期并不如你想象的及时释放。

  • 相关阅读:
    委托
    Ajax TreeView绑定数据库(一)
    递归算法算出1,1,2,3,5.........(二)
    Ajax技术之深入浅出
    javasript读写xml
    递归算法求阶乘(一)
    关于.Net中的实际开发
    ASP.NET Form表单验证
    js 实现自动合并相同的行
    递归快速排序
  • 原文地址:https://www.cnblogs.com/YungMing/p/6165080.html
Copyright © 2020-2023  润新知