如何使用保留关键字访问 NSDictionary 元素?

Posted

技术标签:

【中文标题】如何使用保留关键字访问 NSDictionary 元素?【英文标题】:How to access to a NSdictionary element with reserved keyword? 【发布时间】:2015-08-02 15:44:47 【问题描述】:

我的代码从服务器接收 json 数据并呈现到 UItable 中。这是我从服务器获取的 josn 文件的格式:

[
  
    "id": 4342,
    "name": "Strawberries and Cream Cake",
    "difficulty": 3,
    "created_at": "2014-09-29T10:43:00.072Z",
    "updated_at": "2014-11-26T11:53:58.451Z",
  
]

我需要访问“id”元素,我在 .

(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 

NSDictionary *tempDictionary=[recipes objectAtIndex:indexPath.row];
int recipesID= [tempDictionary objectForKey:@"id"];

这段代码给了我一个错误的数字,加上第二行因为“指向整数转换初始化的不兼容指针...... 我知道 id 是保留关键字,但我需要访问此元素。除了我没有实现服务器之外,我无法更改 id 元素名称。 您对如何访问它有什么建议吗?

【问题讨论】:

因为你得到的是一个NSNumber,而不是一个int,你必须在返回的NSNumber上调用intValue 【参考方案1】:

用这个替换你的最后一行:

NSInteger recipesID= [[tempDictionary objectForKey:@"id"] intValue];

顺便说一句,id 本身确实是 ios 上的保留关键字,但是,您在字符串中使用它,因此编译器不会将其解释为关键字 :) 所以,这里没有理由担心这个.

【讨论】:

以上是关于如何使用保留关键字访问 NSDictionary 元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 中使用 NSDictionary 访问 JSON 子字段

NSDictionary实现原理

NSDictionary底层实现原理

NSDictionary 似乎一个键有多个值,我如何访问各个值?

如何在 PLIST 中访问嵌套的 NSDictionary?

如何在保持成员之间的链接的同时访问 NSDictionary 的另一个成员中的成员