2015-12-07 5 views
1

Облицовочная проблема при литье [AnyObject] до NSMutableArray. пытается преобразовать ниже кода swift2.0`[AnyObject]` to NSMutableArray

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]; 
    }]; 

enter image description here

+0

просто заменить этот код self.searchResults = (tempArray как! NSMutableArray) .mutableCopy –

+0

не работает человек @ SaurabhPrajapati –

+0

Это объективный вопрос или быстрый вопрос? Почему у вас есть оба тега? –

ответ

8

быстротекущей массив НЕ может быть брошено на NSMutableArray однако для всех намерений и целей быстротекущей массив и NSArray являются полностью взаимозаменяемыми. Если вы хотите, чтобы инициализировать в NSMutableArray все, что вам нужно сделать, это:

var mutableArray : NSMutableArray = NSMutableArray(array: swiftArray)

+0

Отличное решение !!! Спасибо @RASS –

0

Вы можете объявить [AnyObject], как VAR вместо LET и может добавлять объекты к нему, и он будет изменяемый объект. Не нужно конвертировать [AnyObject] в NSMutableArray, если это цели.

0

Вы можете попробовать следующий ответ

 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() 
    }) 
0

Попробуйте изменить ниже линии с заменой AnyObject на NSMutableArray: -

let tempArray : NSMutableArray = trackList.items 
Смежные вопросы