Невозможно преобразовать __SwiftDeferredNSArray в NSMutableArray - PullRequest
1 голос
/ 13 июля 2020

У меня есть массив, определенный вот так ...

var filteredData = [[String: Any]]()

Но когда я пытаюсь преобразовать его вот так,

      var filteredArray = filteredData as! NSMutableArray //CRASH HERE
      dic =  filteredArray[indexPath.row] as! NSMutableDictionary
      cell.Sched_celltitle.text = "\(dic["name"]!)"

я получаю cra sh как указано выше говоря Could not cast value of type 'Swift.__SwiftDeferredNSArray' (0x103..) to 'NSMutableArray' (0x200..).

1 Ответ

1 голос
/ 13 июля 2020

В отличие от неизменяемых типов NSMutable... типы коллекций не связаны с собственными типами коллекций Swift.

Вы даже не можете привести тип из NSArray в NSMutableArray в Objective- C.

Только не делай этого. Типы NSMutable... коллекций в Swift бессмысленны. Собственные типы, объявленные как var iable, являются изменяемыми бесплатно.

var filteredData = [[String: Any]]()

...

let item = filteredArray[indexPath.row]
cell.Sched_celltitle.text = item["name"] as? String

Гораздо лучший способ - создать настраиваемую структуру, заменяющую совершенно неопределенный [String:Any] словарь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...