CCARRAY_FOREACH

来源:互联网 发布:淘宝在哪里看追加评价 编辑:程序博客网 时间:2024/06/06 15:07

最近项目老是崩溃。才发现是CCARRAY_FOREACH的问题。

以前发现过还以为是自己写代码不规范,这两天真是操蛋了啊。

打开cocos2dx源码

#define CCARRAY_FOREACH(__array__, __object__)                                                \if (__array__ && __array__->data->num > 0)                                                    \for(id *__arr__ = __array__->data->arr, *end = __array__->data->arr + __array__->data->num-1;    \__arr__ <= end && ((__object__ = *__arr__) != nil || true);                                        \__arr__++)I found that it's not work in C++. So it keep what it's look like in version 1.0.0-rc3. ---By Bin*/#define CCARRAY_FOREACH(__array__, __object__)                                                                         \    if ((__array__) && (__array__)->data->num > 0)                                                                     \    for(CCObject** __arr__ = (__array__)->data->arr, **__end__ = (__array__)->data->arr + (__array__)->data->num-1;    \    __arr__ <= __end__ && (((__object__) = *__arr__) != NULL/* || true*/);                                             \    __arr__++)#define CCARRAY_FOREACH_REVERSE(__array__, __object__)                                                                  \    if ((__array__) && (__array__)->data->num > 0)                                                                      \    for(CCObject** __arr__ = (__array__)->data->arr + (__array__)->data->num-1, **__end__ = (__array__)->data->arr;     \    __arr__ >= __end__ && (((__object__) = *__arr__) != NULL/* || true*/);                                              \    __arr__--)
至于解析:

参考下面

http://novacreo.com/程序组/ccarray_foreach应用误区/

http://blog.csdn.net/lyh66/article/details/9613055

0 0
原创粉丝点击