我有一个问题,不幸的是没有找到任何反应。如何从第二个数组中的第一个数组中找到对象? Swift iOS
我会用一个简单的例子来描述这个问题。我有一个对象数组。每个对象都包含id,name,count。该数组是从服务器解析数据的结果。它被视为第一个。
我也有从另一台服务器采取第二个数组。这是相同的数组ID,名称,计数。
我的问题如下。第一个数组有20个元素,然后每个这个元素我想与另一个数组进行比较。第二个数组是解析。您可能需要使用一个循环,并检查第一个数组中的每个元素是否在第二个中?
//
// ViewController.swift
// ParseSearching
//
// Created by Mateusz Fraczek on 21.07.2015.
// Copyright (c) 2015 universeldev. All rights reserved.
//
import UIKit
import Parse
struct Model : Equatable {
var ide: String!
var name: String!
var count: String!
}
func ==(a: Model, b: Model) -> Bool {
return a.ide == b.ide && a.name == b.name && a.count == b.count
}
extension Array {
func indexesOfSubset<T : Equatable>(objects : [T]) -> [Int] {
// Create storage for filtered objects and results
var unusedObjects = objects
var result : [Int] = []
// Enumerate through all objects in array
for (index, obj) in enumerate(self) {
// Enumerate again through all objects that has not been found
for x in unusedObjects {
// If we hit match, append result, remove it from usused objects
if obj as! T == x {
result.append(index)
unusedObjects = unusedObjects.filter({ $0 != x })
break
}
}
}
// Get results
return result
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var firstArray = [Model]()
var resultsArray = [Model]()
firstArray.append(Model(ide: "xyz1", name: "name1", count: "0"))
firstArray.append(Model(ide: "xyz2", name: "name2", count: "0"))
firstArray.append(Model(ide: "xyz3", name: "name3", count: "0"))
firstArray.append(Model(ide: "xyz4", name: "name4", count: "0"))
// let testObject = PFObject(className: "TestObject")
// testObject["ide"] = "xyz1"
// testObject["name"] = "name1"
// testObject["count"] = "0"
// testObject.saveInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in
// println("Object has been saved.")
// }
var query = PFQuery(className: "TestObject")
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
if let object = objects as? [PFObject] {
for obj in object {
var id = obj.objectForKey("ide") as! String
var name = obj.objectForKey("name") as! String
var count = obj.objectForKey("count") as! String
var model = Model(ide: id, name: name, count: count)
resultsArray.append(model)
println(resultsArray)
let indexes = firstArray.indexesOfSubset(resultsArray)
println("Indexes \(indexes) ")
}
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
是否想通过名称检查id的名称或按count数? – Daljeet
我想在第一个数组中找到第二个数组中的对象。 – Maselko
如果你用一个例子来解释,我很容易引导你。 – Daljeet