是否有可能从具有特定属性的数组中获取对象?或者我是否需要循环遍历我的数组中的所有对象并检查属性是否是我正在寻找的特定属性?
编辑:感谢您给我正确的方向,但我有一个问题转换它.
//再次编辑:好的,如果只有一个特定的结果?这也是一种可行的方法吗?
let imageUUID = sender.imageUUID
let questionImageObjects = self.formImages[currentSelectedQuestion.qIndex] as [Images]!
// this is working
//var imageObject:Images!
/*
for (index, image) in enumerate(questionImageObjects) {
if(image.imageUUID == imageUUID) {
imageObject = image
}
}
*/
// this is not working - NSArray is not a subtype of Images- so what if there is only 1 possible result?
var imageObject = questionImageObjects.filter( { return $0.imageUUID == imageUUID } )
Run Code Online (Sandbox Code Playgroud) 目前,我有一个像这样的对象数组:
var myArr = [
MyObject(name: "Abc", description: "Lorem ipsum 1."),
MyObject(name: "Def", description: "Lorem ipsum 2."),
MyObject(name: "Xyz", description: "Lorem ipsum 3.")
]
Run Code Online (Sandbox Code Playgroud)
我正在测试一个对象是否存在,然后继续这样做:
let item = myArr.filter { $0.name == "Def" }.first
if item != nil {
// Do something...
}
Run Code Online (Sandbox Code Playgroud)
但我正在寻找一种更短的方法,因为我做了很多.我想做这样的事情,但它是无效的:
if myArr.contains { $0.name == "Def" } {
// Do something...
}
Run Code Online (Sandbox Code Playgroud)
有没有我缺少的简写语法或更好的方法吗?
我是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"),
YogaPose(id: 3, title: "Hello World", description: "This is a Description 3", difficulty: Enums.Difficulty.Intermediate, imageURL: "Images/Blah3")
]
Run Code Online (Sandbox Code Playgroud)
我现在有一个方法,我想通过Id返回一个对象.有人可以建议我怎么做...例如listPose.Id === Id;
//Returns a single YogaPose …Run Code Online (Sandbox Code Playgroud)