MonkeyC的一些错误写法

之前接触过pebble和某国产智能穿戴的开发,再到现在搞的Garmin MonkeyC开发,个人感觉问题最少的就是pebble,运行效率也是最高,无奈倒闭了。
那么garmin和某国产手表的开发过程都是十分痛苦的,不是因为语言有多晦涩,而是模拟器运行正常,真机却跑不了,跑不了。下面就介绍一些坑:

注意这些写法在模拟器下都能正常跑通

如果想使用单例,不可以带类名

错误的写法:

static var _single = null;
static function Me(){
    if(Conf._single==null){
        Conf._single = new Conf();
    }
    return Conf._single;
}

正确的写法:

static var _single = null;
static function Me(){
    if(_single==null){
        _single = new Conf();
    }
    return _single;
}

如果想使用枚举, 请设置为单例模式

错误的写法:

class Enum{
        enum{
              TypeA,
              TypeB
        }
}
//其他类中调用
Enum.TypeA

正确的写法

class Enum{
    static var _single = null;
    static function Me(){
        if(_single==null){
            _single = new Enum();
        }
        return _single;
    }
    enum{
          TypeA,
          TypeB
    }
}
//其他类调用
Enum.Me().TypeA

在一个类的静态函数中, 如果调用同类的静态函数, 必须带类名

错误的写法:

static function A(){
    B();
}
static function B(){
}

正确的写法
错误的写法:

static function A(){
    Class.B();
}
static function B(){
}

delegate回收

在这种低功耗设备简化c代码下无法做监视者来传递信息, 这时候就用到代理, 比如把view的地址给到delegate, 来响应键盘事件, 不过当app stop时一定要删除delegate的依赖关系, 否则app无法有效回收内存, 会造成环式依赖, 导致内存溢出.

为什么开发公司不把模拟器环境做的和真机一样, 至少代码逻辑检查应该做到一样才对...太痛苦了

你可能感兴趣的:(MonkeyC的一些错误写法)