【问题标题】:get NSDicitionary value as NSString获取 NSDictionary 值作为 NSString
【发布时间】:2014-07-04 20:52:25
【问题描述】:

我正在从 Instagram JSON API 获取用户 ID。

它只返回一个值作为字典 valueForKeyPath。

如何将其转换为字符串。我需要在 Instagram 上使用用户 ID 进行一些操作。

我试着用这种方式转换它

NSString *userId = [NSString stringWithFormat:@"%@", [dictionary valueForKeyPath:@"id"]];

网址不像字符串,我无法使用以下网址重新连接到 Instagram:

网址:https://api.instagram.com/v1/users/( 123456 )/media/recent?access_token=567890.asasasddsdsdsdsdsadsdsdasd

【问题讨论】:

    标签: ios objective-c json api instagram


    【解决方案1】:

    我认为您可以尝试从数组中获取值。我猜它在索引 0

    NSString *userId = [NSString stringWithFormat:@"%@", [dictionary valueForKeyPath:@"id"][0]];
    

    NSString *userId = [NSString stringWithFormat:@"%@", [[dictionary valueForKeyPath:@"id"] objectAtIndex:0]];
    

    因为如果数组为 nil,程序将在第一个代码处崩溃。让我知道它是否有效

    正如@Paulw11 所说,您不需要 stringWithFormat 因为字符串在数组中 代码行应该是

    NSString *userId = [[dictionary valueForKeyPath:@"id"] objectAtIndex:0];
    

    编码愉快!

    【讨论】:

    • 您不需要 stringWithFormat - 格式为 %@ 的 stringWithFormat 是多余的。
    • 太棒了!我按照@Paulw11 的建议更新了答案
    • @yan 实际上这个工作 NSString *userId = [NSString stringWithFormat:@"%@", [dictionary valueForKeyPath:@"id"][0]];在最后一个应用程序崩溃。
    • @Yan “因为如果数组为 nil,程序将在第一个代码时崩溃。”不,这两行是等价的,如果数组为 nil,则代码的行为相同。
    • @jlehr 不,略有不同。第一个版本总是给你一个 NSString(可能是空的),而第二个版本可能给你一个 NSString 或 nil。然而,良好的防御性编程应该检查 nil 值并相应地处理它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多