帖子
帖子
用户
博客
课程
显示全部楼层
14
帖子
0
勋章
36
Y币

[其他] ios代码运行机制跟安卓的不一样?有什么办法可以减少问...

[复制链接]
发表于 2015-6-2 11:04:44
本帖最后由 树熊 于 2015-6-2 11:41 编辑

用apicloud开发经常遇到在安卓上测试没问题然后上ios有问题的情况,其中最经常遇到的是代码运行顺序问题,比如说打开一个listview,想要在打开后添加底部刷新“lvw.setRefreshFooter”,由于open的回掉函数响应的是点击事件,所以只能在open的代码后写lvw.setRefreshFooter,这在android上市没有问题的,但是到了ios上经过测试发现lvw.setRefreshFooter方法在open没有运行完时就直接运行了,导致setRefreshFooter没有生效,有大神可以讲解一下2种系统的不同么?有什么办法可以避免此类问题吗?


复制代码
补充一下,lvw是这样声明的
//获取全局lvw对象
function Getlistview()
{
        if(!_lvw)
        {
                _lvw=api.require('listView');
        }
        return _lvw;
};

调用
                           _lvwitemdata=pdtdata2itemdata(ret,api.pageParam.classname);
                                        if(_lvwopened){
                                                lvw.reloadData({
                                        data:_lvwitemdata
                                });
                                        }
                                        else{
//                                                第一次加载
                                                Openlvw(_lvwitemdata);//第一次打开lvw
                                                addrefreshEvent();//添加上来刷新事件
                                                _lvwopened=true;
                                        };

在回调函数里面,去执行相关操作,不要依赖于 执行顺序,因为是 异步的
14
帖子
0
勋章
36
Y币
技术支持-Altair 发表于 2015-6-2 15:47
在回调函数里面,去执行相关操作,不要依赖于 执行顺序,因为是 异步的

问题是listview的回调是由点击事件触发的,open完成并没有触发
您需要登录后才可以回帖 登录

本版积分规则