Objective C 连接键

Posted

技术标签:

【中文标题】Objective C 连接键【英文标题】:Objective C concatenation keys 【发布时间】:2018-01-23 16:32:15 【问题描述】:

我正在尝试使用 _valueForKeyPath_ 获取缩略图 url,但我的 json 有一个字典,其中路径和扩展名是分开的。我不知道如何在valueForKeyPath 中同时拥有路径和扩展名。有什么帮助吗?

我尝试查看this,但我相信它不能解决我的问题。到目前为止,我的代码如下所示:

+ (instancetype) characterWithDictionary: (NSDictionary *) dictionary 
    MCUCharacter *character = [[MCUCharacter alloc] init];

    if  ( character ) 

        character.characterImageURL = [NSURL URLWithString:[dictionary valueForKeyPath:@"thumbnail.path.extension"]];
        NSLog(@"Character Image URL: %@", character.characterImageURL);
    

    return character;

这是json:

"thumbnail": 
      "path": "http://i.annihil.us/u/prod/marvel/i/mg/c/e0/535fecbbb9784",
      "extension": "jpg"
, code here

【问题讨论】:

类似的东西可以/会/应该为您完成这项工作:NSURL *_url = [NSURL URLWithString:[[dictionary valueForKeyPath:@"thumbnail.path"] stringByAppendingPathExtension:[dictionary valueForKeyPath:@"thumbnail.extension"]]]; @holex 成功了!请添加答案,以便我接受。谢谢 不客气,我已将其添加为答案。 【参考方案1】:

我不想过度解释,但您当时可以获取一个 value-for-key-path,所以类似的东西可以/会/应该为您完成这项工作:

NSURL *_url = [NSURL URLWithString:[[dictionary valueForKeyPath:@"thumbnail.path"] stringByAppendingPathExtension:[dictionary valueForKeyPath:@"thumbnail.extension"]]];

简而言之,它首先获取 path,然后将 extension 作为实际的路径扩展附加到字符串,最后将字符串转换为 NSURL 对象以供进一步使用。

【讨论】:

以上是关于Objective C 连接键的主要内容,如果未能解决你的问题,请参考以下文章

在Objective C中按顺序保持JSON对象的字典键

在 Objective C 中检查一个空的 JSON 键

如何使用 AFNetworking 在 Objective C 中使用操作键进行 POST

Objective C 中的蓝牙配对与连接

在 Objective C 中连接音频缓冲区

Ruby 符号的 Objective-C 等价物