数组 – Swift – 按属性获取数组中的对象
发布时间:2020-12-14 17:14:55 所属栏目:百科 来源:网络整理
导读:参见英文答案 Find Object with Property in Array????????????????????????????????????5个 我是Swift的新手,我在按属性检索数组中的对象时遇到了一些问题. 请注意,我使用的是Swift 2.0. 我有以下数组; //Dummy Data prior to database call:static var lis
参见英文答案 >
Find Object with Property in Array????????????????????????????????????5个
我是Swift的新手,我在按属性检索数组中的对象时遇到了一些问题. 请注意,我使用的是Swift 2.0. 我有以下数组; //Dummy Data prior to database call: static var listPoses = [ YogaPose(id: 1,title: "Pose1",description: "This is a Description 1",difficulty: Enums.Difficulty.Beginner,imageURL: "Images/Blah1"),YogaPose(id: 2,title: "Pose2",description: "This is a Description 2",difficulty: Enums.Difficulty.Advanced,imageURL: "Images/Blah2"),YogaPose(id: 3,title: "Pose3",description: "This is a Description 3",difficulty: Enums.Difficulty.Intermediate,imageURL: "Images/Blah3"),title: "Hello World",imageURL: "Images/Blah3") ] 我现在有一个方法,我想通过Id返回一个对象.有人可以告诉我如何这样做……例如其中listPose.Id === Id; //Returns a single YogaPose By Id: class func GetPosesById(Id: Int) -> YogaPose{ if(listPoses.count > 0){ return listPoses() ... } } 解决方法
因此,Swift提供了一种根据所需条件过滤对象列表的方法.
在这种情况下,您将需要使用过滤功能: class func GetPosesById(Id: Int) -> YogaPose?{ return listPoses.filter({ $0.id == Id }).first } 基本上,过滤器函数将循环遍历整个listPoses并返回[YogaPose].代码({$0.id == Id})是你的条件,$0表示循环中的当前对象. 我也稍微改变了你的功能签名 class func GetPosesById(Id: Int) -> YogaPose 至 class func GetPosesById(Id: Int) -> YogaPose? 因为第一个属性是一个可选对象,您需要在以后解包 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |