Filter Array of [AnyObject] in Swift

前端 未结 5 890
借酒劲吻你
借酒劲吻你 2020-12-05 10:25

I have an array of AnyObject objects in Swift. Each object has attributes of a restaurant, such as name, type, loc, etc. How can I filter the array if I want to

5条回答
  •  借酒劲吻你
    2020-12-05 10:43

    Your array, objects, is an array of PFObject objects. Thus, to filter the array, you might do something like:

    let filteredArray = objects.filter() {
        if let type = ($0 as PFObject)["Type"] as String {
            return type.rangeOfString("Sushi") != nil
        } else {
            return false
        }
    }
    

    My original answer, based upon an assumption that we were dealing with custom Restaurant objects, is below:


    You can use the filter method.

    Let's assume Restaurant was defined as follows:

    class Restaurant {
        var city: String
        var name: String
        var country: String
        var type: [String]!
    
        init (city: String, name: String, country: String, type: [String]!) {
            ...
        }
    }
    

    So, assuming that type is an array of strings, you'd do something like:

    let filteredArray = objects.filter() {contains(($0 as Restaurant).type, "Sushi")}
    

    If your array of types could be nil, you'd do a conditional unwrapping of it:

    let filteredArray = objects.filter() {
        if let type = ($0 as Restaurant).type as [String]! {
            return contains(type, "Sushi")
        } else {
            return false
        }
    }
    

    The particulars will vary a little depending upon your declaration of Restaurant, which you haven't shared with us, but hopefully this illustrates the idea.

提交回复
热议问题