gpt4 book ai didi

ios - 如何在iOS swift中实现评论和回复系统

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:21:09 25 4
gpt4 key购买 nike

我必须在我的应用程序中实现评论和回复系统。我正在从 API 获取数据,但我不知道该怎么做,因为我以前没有做过类似的事情。我知道我必须为这种类型的系统采用两个不同的单元格,但我不知道如何过滤评论和回复的数据并将它们显示在各自的单元格中。

这是我的 JSON:

[
{
"firstName": "Mark",
"lastName": "King",
"profilePic": "avatar2 - Copy - Copy.jpg",
"reviewId": 54,
"userId": 4,
"serviceProviderId": 0,
"rating": 0,
"description": "Thank You...",
"isDeleted": false,
"parentReviewId": 53,
"createdDate": "2018-05-08T12:32:43.033",
"modifiedDate": "0001-01-01T00:00:00",
"bookingId": 62,
"startDate": "2018-05-08T12:29:00",
"endDate": "2018-05-08T14:29:00",
"serviceName": "Security",
"businessId": 0,
"businessProfilePic": ""
},
{
"firstName": "Satya Indra",
"lastName": "varada",
"profilePic": "3354757569.jpg",
"reviewId": 53,
"userId": 9,
"serviceProviderId": 0,
"rating": 4,
"description": "nice service...",
"isDeleted": false,
"parentReviewId": 0,
"createdDate": "2018-05-08T12:31:44.313",
"modifiedDate": "0001-01-01T00:00:00",
"bookingId": 62,
"startDate": "2018-05-08T12:29:00",
"endDate": "2018-05-08T14:29:00",
"serviceName": "Security",
"businessId": 0,
"businessProfilePic": ""
},
{
"firstName": "Mark",
"lastName": "King",
"profilePic": "avatar2 - Copy - Copy.jpg",
"reviewId": 52,
"userId": 4,
"serviceProviderId": 0,
"rating": 0,
"description": "sorry for the trouble",
"isDeleted": false,
"parentReviewId": 9,
"createdDate": "2018-05-07T11:52:23.81",
"modifiedDate": "0001-01-01T00:00:00",
"bookingId": 16,
"startDate": "2018-04-24T11:30:00",
"endDate": "2018-04-24T12:30:00",
"serviceName": "Cleaning",
"businessId": 2,
"businessProfilePic": "logo-home.png"
},
{
"firstName": "James",
"lastName": "Miller",
"profilePic": "avatar.jpg",
"reviewId": 9,
"userId": 7,
"serviceProviderId": 0,
"rating": 2,
"description": "bad",
"isDeleted": false,
"parentReviewId": 0,
"createdDate": "2018-04-24T23:59:06.357",
"modifiedDate": "0001-01-01T00:00:00",
"bookingId": 16,
"startDate": "2018-04-24T11:30:00",
"endDate": "2018-04-24T12:30:00",
"serviceName": "Cleaning",
"businessId": 2,
"businessProfilePic": "logo-home.png"
},
{
"firstName": "Mark",
"lastName": "King",
"profilePic": "avatar2 - Copy - Copy.jpg",
"reviewId": 2,
"userId": 4,
"serviceProviderId": 0,
"rating": 0,
"description": "Thank you",
"isDeleted": false,
"parentReviewId": 1,
"createdDate": "2018-04-20T14:57:29.073",
"modifiedDate": "0001-01-01T00:00:00",
"bookingId": 2,
"startDate": "2018-04-25T00:00:00",
"endDate": "2018-04-26T09:00:00",
"serviceName": "Security",
"businessId": 0,
"businessProfilePic": ""
},
{
"firstName": "James",
"lastName": "Miller",
"profilePic": "avatar.jpg",
"reviewId": 1,
"userId": 7,
"serviceProviderId": 0,
"rating": 4,
"description": "Great",
"isDeleted": false,
"parentReviewId": 0,
"createdDate": "2018-04-20T14:56:57.34",
"modifiedDate": "0001-01-01T00:00:00",
"bookingId": 2,
"startDate": "2018-04-25T00:00:00",
"endDate": "2018-04-26T09:00:00",
"serviceName": "Security",
"businessId": 0,
"businessProfilePic": ""
}
]

这里所有的字典都代表来自一个数组的评论和评论。区别在于任何评论的 bookingId 将与回复相同,评论的 reviewId 将等于回复的 parentReviewId。如果回复已经存在,它应该显示在相应的评论下方,如果没有回复,我们应该能够通过单击评论单元格中的回复按钮来添加它。这就是这个概念,我真的尝试过,但我做不到。希望你们能帮助我做到这一点..提前感谢任何帮助..

最佳答案

API response 的最佳实践应该是 like,reply 应该在 comments 字典中。喜欢:

{
"firstName": "James",
"lastName": "Miller",
"profilePic": "avatar.jpg",
"reviewId": 9,
"userId": 7,
"serviceProviderId": 0,
"rating": 2,
"description": "bad",
"isDeleted": false,
"parentReviewId": 0,
"createdDate": "2018-04-24T23:59:06.357",
"modifiedDate": "0001-01-01T00:00:00",
"bookingId": 16,
"startDate": "2018-04-24T11:30:00",
"endDate": "2018-04-24T12:30:00",
"serviceName": "Cleaning",
"businessId": 2,
"businessProfilePic": "logo-home.png"
"replies": [
{
"firstName": "Mark",
"lastName": "King",
"profilePic": "avatar2 - Copy - Copy.jpg",
"reviewId": 52,
"userId": 4,
"serviceProviderId": 0,
"rating": 0,
"description": "sorry for the trouble",
"isDeleted": false,
"parentReviewId": 9,
"createdDate": "2018-05-07T11:52:23.81",
"modifiedDate": "0001-01-01T00:00:00",
"bookingId": 16,
"startDate": "2018-04-24T11:30:00",
"endDate": "2018-04-24T12:30:00",
"serviceName": "Cleaning",
"businessId": 2,
"businessProfilePic": "logo-home.png"
},
{
"firstName": "Mark",
"lastName": "King",
"profilePic": "avatar2 - Copy - Copy.jpg",
"reviewId": 60,
"userId": 4,
"serviceProviderId": 0,
"rating": 0,
"description": "sorry for the trouble new",
"isDeleted": false,
"parentReviewId": 9,
"createdDate": "2018-05-07T11:52:23.81",
"modifiedDate": "0001-01-01T00:00:00",
"bookingId": 16,
"startDate": "2018-04-24T11:30:00",
"endDate": "2018-04-24T12:30:00",
"serviceName": "Cleaning",
"businessId": 2,
"businessProfilePic": "logo-home.png"
}
]
}

但在当前情况下,您可以检查 parentReviewId。如果是0,则为回复,否则为评论。你可以这样:

    let responseArray = [[String: Any]]() // This is array fro your question

// Extract commentArray
let commentArray = responseArray.filter( { Int(exactly: $0["parentReviewId"] as! NSNumber) == 0 } )
// Load updatedResponseArray with relpies into it
var updatedResponseArray = [[String: Any]]()

for itemDict in commentArray {
let reviewId = Int(exactly: itemDict["reviewId"] as! NSNumber) ?? 0
let replies = responseArray.filter( { Int(exactly: $0["parentReviewId"] as! NSNumber) == reviewId } )

var dict = itemDict
dict["replies"] = replies
updatedResponseArray.append(dict)
}

print(updatedResponseArray)

现在,您可以使用此 updatedResponseArray,字典中的主要详细信息是评论,您在 replies 键中有对该评论的相关回复。

关于ios - 如何在iOS swift中实现评论和回复系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50312995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com