[TOC]
cocos2d-x 3.0
- 首页 - 相关页面 - 模块 - 命名空间 - - 文件 -
Public 成员函数 - 图1 Public 成员函数 - 图2)
- 类列表 - 类索引 - 类继承关系 - 类成员

全部)) 命名空间) 文件) 函数) 变量) 类型定义) 枚举) 枚举值) 属性) 友元) 宏定义)))

Public 成员函数 | 静态 Public 成员函数 | Public 属性 | 所有成员列表

Dictionary类 参考 [Data Structures](../../df/db3/groupdata__structures.html)

Dictionary 就像 Obj-C 中的 NSDictionary . 更多…

#include

类 __Dictionary 继承关系图:

Public 成员函数 - 图3 Ref Clonable

## Public 成员函数
__Dictionary ()
Dictionary的构造函数. 更多…
~__Dictionary ()
Dictionary的析构函数 NA NA. 更多…
bool init ()
初始化dictionary. 更多…
unsigned int count ()
获取Dictionary中元素个数. 更多…
__Array allKeys ()
返回所有元素的 key. 更多…
__Array allKeysForObject (Ref object)
获取根据指定对象条件下的所有key. 更多…
Ref objectForKey (const std::string &key)
根据这个特定的string key,获取所有的object. 更多…
Ref objectForKey (intptr_t key)
根据特殊的integer key获取object. 更多…
const __String valueForKey (const std::string &key)
根据特定的string key,获取值. 更多…
const __String valueForKey (intptr_t key)
根据特定的integer key获取值. 更多…
void setObject (Ref pObject, const std::string &key)
插入一个对象进dictionary, 匹配插入特定的string key. 更多…
void setObject (Ref pObject, intptr_t key)
插入一个对象进dictionary, 用特定的string key匹配它. 更多…
void removeObjectForKey (const std::string &key)
根据特定的string key移除对应的对象. 更多…
void removeObjectForKey (intptr_t key)
根据特定的integer key,移除对象的对象. 更多…
void removeObjectsForKeys (__Array pKeyArray)
根据array中得keys移除对应的所有对象. 更多…
void [removeObjectForElememt](../../d0/d1a/classcocos2d11_dictionary.html#a9ac330143c005e24307869a8d24af105) (DictElement pElement)
根据某个元素移除对应的对象 更多…
void removeAllObjects ()
移除dictionary中所有对象. 更多…
Ref randomObject ()
返回dictionary中随机的一个对象. 更多…
bool writeToFile (const char fullPath)
往plist文件中写入一个dictionary. 更多…
virtual void acceptVisitor (DataVisitor &visitor)
virtual __Dictionary clone () const
NA NA 更多…
- Public 成员函数 继承自 Ref
void retain ()
保留所有权. 更多…
void release ()
立即释放所有权. 更多…
Ref autorelease ()
自动释放所有权在不久的将来. 更多…
unsigned int getReferenceCount () const
返回Ref对象当前的引用计数. 更多…
virtual ~Ref ()
NA NA 更多…
- Public 成员函数 继承自 Clonable
virtual ~Clonable ()
NA NA 更多…
CC_DEPRECATED_ATTRIBUTE Ref copy () const
返回Ref对象的一份拷贝. 更多…
## 静态 Public 成员函数
static __Dictionary create ()
创建一个dictionary. 更多…
static __Dictionary createWithDictionary (__Dictionary srcDict)
根据现存的dictionary创建一个新的dictionary. 更多…
static __Dictionary createWithContentsOfFile (const char pFileName)
根据plist文件创建一个dictionary. 更多…
static __Dictionary createWithContentsOfFileThreadSafe (const char *pFileName)
根据plist文件创建一个dictionary. 更多…
## Public 属性
DictElement * _elements
dictionary中得所有元素. 更多…
## 额外继承的成员函数
- Protected 成员函数 继承自 Ref
Ref ()
构造函数 更多…
- Protected 属性 继承自 Ref
unsigned int _referenceCount
引用计数 更多…

详细描述

Dictionary 就像 Obj-C 中的 NSDictionary .

  • 注解
  • 只有对象的指针 或者它的子类 能往 Dictionary里面插入数据.

// 创建一个dictionary, 返回autorelease object.

Dictionary* pDict = Dictionary::create();

// 插入对象进Dictionary

String* pValue1 = String::create("100");

String* pValue2 = String::create("120");

Integer* pValue3 = Integer::create(200);

pDict->setObject(pValue1, "key1");

pDict->setObject(pValue2, "key2");

pDict->setObject(pValue3, "key3");

// 获取object的key

String pStr1 = static_cast<String>(pDict->objectForKey("key1"));

log("{ key1: %s }", pStr1->getCString());

Integer pInteger = static_cast<Integer>(pDict->objectForKey("key3"));

log("{ key3: %d }", pInteger->getValue());

构造及析构函数说明

__Dictionary ( )

Dictionary的构造函数.

NA NA

~__Dictionary ( )

Dictionary的析构函数 NA NA.

成员函数说明

virtual void acceptVisitor ( DataVisitor & visitor)

virtual

__Array* allKeys ( )

返回所有元素的 key.

  • 返回
  • 数组包含所有元素的key. 它也是autorelease类型. NA

__Array allKeysForObject ( Ref object)

获取根据指定对象条件下的所有key.

  • 警告
  • 使用 '==' 比较两个对象
  • 返回
  • 数组 包含指定条件下的所有key对应的对象. 它也是autorelease object. NA

virtual __Dictionary* clone ( ) const

virtual

NA NA

实现了 Clonable.

unsigned int count ( )

获取Dictionary中元素个数.

  • 返回
  • 元素个数. NA

static __Dictionary* create ( )

static

创建一个dictionary.

  • 返回
  • 返回一个autorelease dictionary.

static __Dictionary createWithContentsOfFile ( const char pFileName)

static

根据plist文件创建一个dictionary.

  • 参数
  • pFileNameplist文件的名字.

  • 返回
  • 一个autorelease类型的dictionary.
  • 参见
  • create(), createWithDictionary(Dictionary), [createWithContentsOfFileThreadSafe(const char)](../../d0/d1a/classcocos2d_1_1_dictionary.html#a9b09179c67f6919b779b9aa656274e33). NA

static __Dictionary createWithContentsOfFileThreadSafe ( const char pFileName)

static

根据plist文件创建一个dictionary.

  • 注解
  • 返回值不是autorelease类型. 这能确保在新的线程中不适用autorelease pool. 因此, 你需要管理好返回对象的生命周期. 这意味着你不需要它时, CC_SAFE_RELEASE 需要被调用.
  • 参数
  • pFileNameplist 文件.

  • 返回
  • 不是autorelease类型的dictionary. NA NA

static __Dictionary createWithDictionary ( __Dictionary srcDict)

static

根据现存的dictionary创建一个新的dictionary.

  • 参数
  • srcDict现存的dictionary.

  • 返回
  • 一个autorelease类型的dictionary.

bool init ( )

初始化dictionary.

如果初始化成功,返回true . NA NA

Ref* objectForKey ( const std::string & key)

根据这个特定的string key,获取所有的object.

  • 注解
  • 这个 dictionary 需要使用string类型的key. 如果使用integer, 可能引发断言.
  • 参数
  • key用于搜索的string类型的key.

  • 返回
  • 这个 object必须匹配 key. 你需要强制转换为你知道的那个类型.

// 假设这个元素是 String* pointers. 转换代码如下.

String pStr = static_cast<String>(pDict->objectForKey("key1"));

// Do something about pStr.

// 如果你不知道这个对象的类型, 最好使用 dynamic_cast去检查它.

String pStr2 = dynamic_cast<String>(pDict->objectForKey("key1"));

if (pStr2 != NULL) {

// Do something about pStr2

}

Ref* objectForKey ( intptr_t key)

根据特殊的integer key获取object.

  • 注解
  • 这个dictionary 需要使用integer作为key. 如果是加入string类型的key, 将会发生断言.
  • 参数
  • key用于搜索的 integer key.

  • 返回
  • 这个object 匹配 key.

Ref* randomObject ( )

返回dictionary中随机的一个对象.

  • 返回
  • The random object.

void removeAllObjects ( )

移除dictionary中所有对象.

void removeObjectForElememt ( DictElement * pElement)

根据某个元素移除对应的对象

  • 参数
  • pElement这个element对应的对象将被移除.

void removeObjectForKey ( const std::string & key)

根据特定的string key移除对应的对象.

  • 参数
  • key用于搜索的string key.

void removeObjectForKey ( intptr_t key)

根据特定的integer key,移除对象的对象.

  • 参数
  • key用于搜索的integer key.

void removeObjectsForKeys ( __Array * pKey__Array)

根据array中得keys移除对应的所有对象.

  • 参数
  • pKeyArray包含这个keys的数组里的对象都会被移除.

void setObject ( Ref * pObject,
const std::string & key
)

插入一个对象进dictionary, 匹配插入特定的string key.

  • 注解
  • 当这个方法首次调用时, 这个key将被设置为string类型. 这之后你不能使用 setObject 设置integer key. 如果Dictionary包含了你传递的key, 匹配这个key的对象将被释放,从这个dictionary 里移除.然后新的对象将被插入。
  • 参数
  • pObject被插入的对象. key用于搜索的string key.

void setObject ( Ref * pObject,
intptr_t key
)

插入一个对象进dictionary, 用特定的string key匹配它.

  • 注解
  • 当这个方法首次被调用时, 这个key的类型将被设置为string类型. 这之后你不能setObject为integer类型. 如果dictionary中已经存在了这个key, 这个key所对应的对象将被释放和移除. 新的对象将会插入.
  • 参数
  • pObject被插入的对象. key用于搜索的string key.

const __String* valueForKey ( const std::string & key)

根据特定的string key,获取值.

  • 注解
  • 小心使用这个函数由于它假设这个dictionary里面的对象是__String pointer.
  • 参数
  • key用于搜索的 string key

  • 返回
  • 返回一个String实例. 如果没被找到或者这个string不存在,将返回空.

const __String* valueForKey ( intptr_t key)

根据特定的integer key获取值.

  • 注解
  • 小心使用这个函数由于它假设这个dictionary里面的对象是__String pointer.
  • 参数
  • key用于搜索的 string key.

  • 返回
  • 返回一个String实例. 如果没被找到或者这个string不存在,将返回空.

bool writeToFile ( const char * fullPath)

往plist文件中写入一个dictionary.

  • 参数
  • fullPathplist文件的全路径. 通过 getWritablePath()可以获取可写的路径

  • 返回
  • true 表示创建成功, false 表示创建失败 NA NA

类成员变量说明

DictElement* _elements

dictionary中得所有元素.

  • 注解
  • 对于内部使用, 我们需要把这个成员变量声明为public,因为它在UT_HASH中使用.

该类的文档由以下文件生成:

  • /Users/zeroyang/Documents/github/cocos2d-x/cocos/deprecated/CCDictionary.h