`[AnyObject]` 到 NSMutableArray

`[AnyObject]` to NSMutableArray

[AnyObject] 转换为 NSMutableArray 时遇到问题。 尝试将以下代码转换为 swift2.0

 NSString *search = [searchBar.text stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
    [[SpotifySDKAPI sharedInstance]searchSPTracks:self.session searchQuery:search completionHandler:^(SPTListPage *trackList, NSString *error) {
        NSArray* tempArray = trackList.items;
        self.spotifySearchResults = [tempArray mutableCopy];
        [self.tableView reloadData];
    }];

您可以将 [AnyObject] 声明为 VAR 而不是 LET,并且可以将对象附加到它,它将成为可变对象。如果这是目的,则无需将 [AnyObject] 转换为 NSMutableArray。

你可以试试下面的答案

     let search: String = searchBar.text.stringByReplacingOccurrencesOfString(" ", withString: "%20")
     SpotifySDKAPI.sharedInstance().searchSPTracks(self.session, searchQuery: search, completionHandler: {(trackList: SPTListPage, error: String) -> Void in
       var tempArray: [AnyObject] = trackList.items
       self.spotifySearchResults = tempArray.mutableCopy()
       self.tableView.reloadData()
     })

A​​ Swift 数组 CANNOT 被转换为 NSMutableArray 但是对于所有意图和目的来说 Swift 数组和 NSArray 是完全可以互换的。如果你想初始化一个 NSMutableArray 你所要做的就是:

var mutableArray : NSMutableArray = NSMutableArray(array: swiftArray)

尝试更改以下行,将 AnyObject 替换为 NSMutableArray:-

let tempArray : NSMutableArray = trackList.items