我试着从web请求数据,然后得到一个四次的数组(它们是不同的),我试着把这四个数组放在一个大数组中。
问题是四个小数组不在大数组中的正确位置。我想用这个函数largeArray.sort把四个小的放在正确的位置。
这是我的代码:

for i in 0..<4{
    Alamofire.request(homeUrl[i], method: .get, parameters: nil, encoding: JSONEncoding.default).responseJSON { (valueGot) in
        switch valueGot.result.isSuccess{
        case true:
            let dataDict = valueGot.result.value as! NSDictionary
            let interestDict = dataDict["interest"] as! NSDictionary
            let issuesArray = interestDict["issues"] as! NSArray
            let todayDict = issuesArray[0] as! NSDictionary
            let articlesArray = todayDict["articles"] as! NSArray
            self.nsmArray.removeAllObjects()
            for oneDict in articlesArray{
                let model:ArticleModel = Mapper<ArticleModel>().map(JSON: oneDict as! [String:Any])!
                if model.cover != nil{
                    self.nsmArray.add(model)
                }
            }
            self.nsmArray.add(i)
                self.collectionNSMArray.add(self.nsmArray.mutableCopy()
            self.allCollectionView?.reloadData()

        case false:
            print(valueGot.error ?? "404")
        }
    }
}       //for循环结束

错误如下:
collectionNSMArray.sort { (s1:NSMutableArray, s2:NSMutableArray) -> Bool in
    return s1.lastObject < s2.lastObject
}

这是我做的模型:
class ArticleModel: Mappable {

    var title:String?
    var snippet:String?
    var cover:String?
    var tags:[TagsType]?
    var webUrl:String?
    var appName:String?
    var appIcon:String?


    required init?(map: Map) {
        mapping(map: map)
    }
    func mapping(map: Map) {
        title <- map["title"]
        snippet <- map["snippet"]
        cover <- map["cover"]
        tags <- map["tags"]
        webUrl <- map["webUrl"]
        appName <- map["appName"]
        appIcon <- map["appIcon"]
    }
}

class TagsType: Mappable {

    var name:String?

    required init?(map: Map) {
        mapping(map: map)
    }
    func mapping(map: Map) {
        name <- map["name"]
    }
}

最佳答案

您得到的是错误,Binary operator '<' cannot be applied to two 'Any?' operands是因为您试图比较两个<不知道如何比较的值。
<是二进制运算符
Any?是要比较的对象的类型
您可以考虑将s1.lastObjects2.lastObject转换为数字之类的内容,以便对它们进行比较。

08-19 12:27