Obj-c - 从NSDictionary获取值时应用程序崩溃了吗?

时间:2017-09-05 06:25:42

标签: ios objective-c

我试图在NSString中从我的NSDictionary(self.acceptedFriends)打印node_title值,但由于某种原因,我的应用程序因错误 ' NSInvalidArgumentException'而崩溃,原因:' - [__ NSSingleObjectArrayI objectForKeyedSubscript:]:当我使用以下代码行时,无法识别的选择器发送到实例0x17400fa60'

ViewController.m

NSString *test = self.acceptedFriends[@"node_title"][0];

请参阅下面的返回结构。为避免崩溃,上面的线应该是什么样的?我觉得我已经尝试了一切。

结构:

 Array
    (
        [0] => stdClass Object
            (
                [node_title] => hi
                [body] => jfkmcc

                [friendphoto] => /stored/1504111984.jpg
                [uid] => 47
                [address2] => fake street
                [star rating] => 5
                [uid2] => 202
            )

    )

3 个答案:

答案 0 :(得分:3)

你应该试试

 NSString *test = self.acceptedFriends[0][@"node_title"];

代替。

答案 1 :(得分:0)

您需要将NSDictionary转换为NSArray并以这种方式获取..

NSArray *values = [yourResponseDictionary allValues];
NSString *test = values[0][@"node_title"];

答案 2 :(得分:0)

如果jsonlitefromJSON,那么您需要使用以下代码进行转换

ndjson

您可以使用以下代码访问标题:

self.acceptedFriends