與節點屬性(property)相關的
CC_PROPERTY_READONLY |
CC_PROPERTY_READONLY_PASS_BY_REF |
CC_PROPERTY |
CC_PROPERTY_PASS_BY_REF |
CC_SYNTHESIZE_READONLY |
CC_SYNTHESIZE_READONLY_PASS_BY_REF |
CC_SYNTHESIZE |
CC_SYNTHESIZE_PASS_BY_REF |
CC_SYNTHESIZE_RETAIN |
具體定義見CCPlatformMacros.h。這些主要是爲了模擬objective-C下的@property, readonly, retain, @synthesize等關鍵字。
與命名空間(namespace)相關
NS_CC_BEGIN |
NS_CC_END |
USING_NS_CC |
與節點的創建方法(node, create)相關
CREATE_FUNC |
NODE_FUNC |
與內存管理相關
CC_SAFE_DELETE |
CC_SAFE_DELETE_ARRAY |
CC_SAFE_FREE |
CC_SAFE_RELEASE |
CC_SAFE_RELEASE_NULL |
CC_SAFE_RETAIN |
在代碼中使用這些宏,可以減少敲鍵盤的次數,從而提高編寫效率。什麼時候用SAFE_DELETE 什麼時候用SAFE_RELEASE呢?????????請關注blog.csdn.net @weibo.com/shunfengche
填空題:
malloc calloc申請空間的用__釋放,c++ new申請空間的用___釋放,CCObject子類對象用_____釋放。
日誌
CCLOG |
CCLOGERROR |
CCLOGINFO |
CCLOGWARN |
斷言
CC_BREAK_IF |
CC_ASSERT |
CCAssert |
其中CC_BREAK_IF是在CCPlatformMacros.h中定義的,它用在循環中的條件判斷。
CC_BREAK_IF有一個使用非常頻繁的場合,就是在do{}while(0)中。這個使用語句塊的作用還是挺大的。根據GOOGLE編程規範,爲了減少代碼層次,條件判斷應該先進行,不滿足則跳過後面代碼。跳過有兩種方式,一種是return,另一種是break。前一種方式下,後面的全部代碼都不能得到執行;後一種方式必須放在循環或者swich語句塊中。如果使用do{}while(0)則可以解決第一種方式後面的代碼得不到執行的問題。
CCAssert定義在ccMacros.h中,它是對CC_ASSERT的封裝。與數學相關
CCRANDOM_MINUS1_1 |
CCRANDOM_0_1 |
CC_DEGREES_TO_RADIANS |
CC_RADIANS_TO_DEGREES |
點(CCPoint)相關
ccp
具體定義在CCPointExtension.h中。此文件中還定義了很多與點運算相關的API。需要作點運算時,先檢查此處是否已經定義過了。