gpt4 book ai didi

ios - 在两个对象 : iOS 中发送带有引用和更新值的自定义对象

转载 作者:行者123 更新时间:2023-11-28 13:35:44 25 4
gpt4 key购买 nike

我需要将引用类中的值更新到我的自定义单元格。

我要存档:

  1. 从API获取数据//已完成
  2. 从 API 创建自定义对象(模型)//已完成
  3. 将对象引用发送到数组中的自定义单元格
  4. 更改自定义单元格中的值
  5. 更新 View Controller 数组中的值

我阅读了此链接但无法更新值

https://medium.com/@abhimuralidharan/difference-between-value-type-and-a-reference-type-in-ios-swift-18cb5145ad7a

https://developer.apple.com/swift/blog/?id=10

下面是我的课

class Post {
// https://www.raywenderlich.com/9481-reference-vs-value-types-in-swift
var objPost:ObjPost

init(_ objPost:ObjPost) {
self.objPost = objPost
}
}

struct ObjPost:Codable {
var id:Int
var contentAvailable : Bool
var userId : Int
var userName : String
var userProfileImage: String
var subTitle : String
var postedSince : String
var isPin : Bool
var location : String
var lat : String
var long: String
var isLiked: Bool
var isDisliked : Bool
var likes : Int
var dislikes: Int
var shares: Int
var comments:Int
var description: String
var albumId: Int
var privacy: Int
var isEditable: Bool
var media:[ObjMedia]
}

struct ObjMedia:Codable {
var id: Int
var type: Int // 1 = Image, 2=Video
var url: String
var description: String?
var thumb: String
var isLiked: Bool
var isDisliked:Bool
var likes:Int
var dislikes: Int
var shares: Int
var comments: Int
var isEditable:Bool
var isPin: Bool
var isCoverMedia: Bool
}

传递对象ObjPost的引用 tableView: UITableView, cellForRowAt indexPath: IndexPath

In below code get reference object from array with -1 value indexPath.row-1, Because 1st row is fix UI in my project requirement.

cell.objPostDetails = Post(arrPosts[indexPath.row-1].objPost)

自定义单元格代码和

var objPostDetails:Post! // Create object variable.

更新自定义单元格中的值代码

self.objPostDetails.objPost.isLiked  = !self.actionSelected // Here is action selected is bool variable
self.objPostDetails.objPost.isDisliked = self.actionSelected // Here is action selected is bool variable

我的问题是更新单元格中的值而不是更新数组中的值当我上下滚动时,旧值是可见的。

最佳答案

此外,将 ObjPostObjMedia 作为 class 而不是 struct。然后一切都按预期进行。

class ObjPost:Codable {
var id:Int
var contentAvailable : Bool
var userId : Int
var isDisliked : Bool
...
}

class ObjMedia:Codable {
var id: Int
var type: Int
var url: String
var description: String?
...
}

关于ios - 在两个对象 : iOS 中发送带有引用和更新值的自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56648894/

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