簡體   English   中英

無法將類型“ [String]”的值分配給類型“ [MovieVO]”的值-Swift

[英]Cannot assign a value of type '[String]' to a value of type '[MovieVO]' - Swift

class ListViewController: UITableViewController, UISearchResultsUpdating {

    var list = [MovieVO]()
    var filteredlist = [MovieVO]()
    var resultSearchController = UISearchController()

func updateSearchResultsForSearchController(searchController: UISearchController)
{
    self.filteredlist.removeAll(keepCapacity: false)

     let searchPredicate = NSPredicate(format: "title CONTAINS[c] %@", searchController.searchBar.text!)
     let array = (self.list as NSArray).filteredArrayUsingPredicate(searchPredicate)


     self.filteredlist = array as! [String] => Cannot assign a value of type '[String]' to a value of type '[MovieVO]'

    self.tableView.reloadData()
}

您已將self.filteredlist定義為MovieVO類型的Swift數組,因此不能,您不能為其分配String類型的數組。 嘗試將其轉換為MovieVO類型,或者將其轉換為該類型(也許對查看MovieVO的定義MovieVO )。

在執行以下操作時,您已將filteredlist聲明為MovieVO的數組:

var filteredlist = [MovieVO]()

因此它不能接受[String] ,只能接受[MovieVO]

我想不是將NSArray強制轉換為[String]而是要將其[MovieVO][MovieVO]

self.filteredlist = array as! [MovieVO]

為了避免崩潰,請使用可選綁定替換此強制轉換:

if let movies = array as? [MovieVO] {
    self.filteredlist = movies
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM