【发布时间】:2017-12-13 04:17:48
【问题描述】:
我正在使用this API 获取用户的关注者列表,并按照文档中的描述以 JSON 格式返回关注者。这是返回对象的 sn-p:
{
"users": [
{
"id": 2960784075,
"id_str": "2960784075",
"name": "Jesus Rafael Abreu M",
"screen_name": "chuomaraver",
"location": "",
"profile_location": null,
"url": null,
"description": "",
"protected": false,
"followers_count": 1,
"friends_count": 101,
"listed_count": 0,
"created_at": "Sun Jan 04 19:58:06 +0000 2015",
.....
.....
"default_profile": true,
"default_profile_image": false,
"following": false,
"follow_request_sent": false,
"notifications": false,
"muting": false
},
.....
.....
],
"next_cursor": 1489467234237774933,
"next_cursor_str": "1489467234237774933",
"previous_cursor": 0,
"previous_cursor_str": "0"
}
如您所见,用户对象有很多属性,我不想这样做 一个一个地解析它们,或者使用一个库来为我做这些。
TwitterKit 有一个名为 TWTRUser 的类,这里是 documentation。要初始化这个类的一个对象,你可以使用一个像这样接受 JSON 字典的构造函数:
let follower = TWTRUser(jsonDictionary: jsonDictionary)
这样我可以得到解析后返回给我的 JSON 对象并初始化 TWTRUser 对象。
问题是TWTRUser没有返回JSON中列出的所有属性,它只有documentation中列出的这些属性:
userID 属性
名称属性
screenName 属性
已验证 物业
受保护的财产
profileImageURL 属性
profileImageMiniURL 属性
profileImageLargeURL 属性
formattedScreenName 属性
profileURL 属性
我尝试使用 valueForKey 方法,该方法接受一个键并返回它的值,如下所示:
let createdAt = follower.value(forKey: "created_at")
我认为它会起作用,但它没有。当我使用它时,应用程序崩溃并给我以下消息:
由于未捕获的异常“NSUnknownKeyException”而终止应用程序, 原因:'[valueForUndefinedKey:]:这个类 不符合关键贡献者的关键值编码。'
如何使用TWTRUser 类获取所有用户的属性?
【问题讨论】:
-
显示您尝试过的代码?
-
你在哪里使用
contributors_enabled -
@AbhishekJain 我提到我尝试使用
TWTRUser的 valueForKey 方法,我还说我可以通过原生方式或使用库来解析 JSON但我正在寻找另一种解决方案。 -
@Anbu.Karthik 是的,我试过了,也是同样的崩溃。
标签: ios swift twitterkit