mirror of https://github.com/axmolengine/axmol.git
Enhanced CCString with two 'constructors' and a compare function.
This commit is contained in:
parent
0c4a6be8ff
commit
8e67d3e2d6
|
@ -124,6 +124,11 @@ unsigned int CCString::length() const
|
|||
return m_sString.length();
|
||||
}
|
||||
|
||||
int CCString::compare(const char * pStr) const
|
||||
{
|
||||
return strcmp(getCString(), pStr);
|
||||
}
|
||||
|
||||
CCObject* CCString::copyWithZone(CCZone* pZone)
|
||||
{
|
||||
CCAssert(pZone == NULL, "CCString should not be inherited.");
|
||||
|
@ -152,6 +157,31 @@ CCString* CCString::stringWithCString(const char* pStr)
|
|||
return pRet;
|
||||
}
|
||||
|
||||
CCString* CCString::stringWithString(const std::string& pStr)
|
||||
{
|
||||
CCString* pRet = new CCString(pStr);
|
||||
pRet->autorelease();
|
||||
return pRet;
|
||||
}
|
||||
|
||||
CCString* CCString::stringWithCStringData(const char* pData, unsigned long nLen)
|
||||
{
|
||||
CCString* pRet = NULL;
|
||||
if (pData != NULL)
|
||||
{
|
||||
char* pStr = (char*)malloc(nLen+1);
|
||||
if (pStr != NULL)
|
||||
{
|
||||
pStr[nLen] = '\0';
|
||||
memcpy(pStr, pData, nLen);
|
||||
pRet = CCString::stringWithCString(pStr);
|
||||
free(pStr);
|
||||
}
|
||||
}
|
||||
return pRet;
|
||||
|
||||
}
|
||||
|
||||
CCString* CCString::stringWithData(unsigned char* pData, unsigned long nLen)
|
||||
{
|
||||
CCString* pRet = NULL;
|
||||
|
|
|
@ -66,17 +66,32 @@ public:
|
|||
/** get the length of string */
|
||||
unsigned int length() const;
|
||||
|
||||
/** compare to a c string */
|
||||
int compare(const char *) const;
|
||||
|
||||
/* override functions */
|
||||
virtual CCObject* copyWithZone(CCZone* pZone);
|
||||
virtual bool isEqual(const CCObject* pObject);
|
||||
|
||||
/* static funcitons */
|
||||
/** create a string with c string
|
||||
/** create a string with c string
|
||||
* @return A CCString pointer which is an autorelease object pointer,
|
||||
* it means that you needn't do a release operation unless you retain it.
|
||||
*/
|
||||
static CCString* stringWithCString(const char* pStr);
|
||||
|
||||
/** create a string with c string
|
||||
* @return A CCString pointer which is an autorelease object pointer,
|
||||
* it means that you needn't do a release operation unless you retain it.
|
||||
*/
|
||||
static CCString* stringWithCStringData(const char* pData, unsigned long nLen);
|
||||
|
||||
/** create a string with std::string
|
||||
* @return A CCString pointer which is an autorelease object pointer,
|
||||
* it means that you needn't do a release operation unless you retain it.
|
||||
*/
|
||||
static CCString* stringWithString(const std::string& str);
|
||||
|
||||
/** create a string with format, it's similar with the c function 'sprintf', the default buffer size is (1024*100) bytes,
|
||||
* if you want to change it, you should modify the kMaxStringLen macro in CCString.cpp file.
|
||||
* @return A CCString pointer which is an autorelease object pointer,
|
||||
|
|
Loading…
Reference in New Issue