`[AnyObject]` 到 NSMutableArray
Posted
技术标签:
【中文标题】`[AnyObject]` 到 NSMutableArray【英文标题】:`[AnyObject]` to NSMutableArray 【发布时间】:2016-03-11 19:13:23 【问题描述】:将[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];
];
【问题讨论】:
只需替换这段代码 self.searchResults = (tempArray as!NSMutableArray).mutableCopy 不工作的人@SaurabhPrajapati 这是一个objective-c问题还是一个swift问题?为什么你有两个标签? 我提供了 obj-c 代码,但在转换时遇到了问题。@AlbertRenshaw 【参考方案1】:一个 Swift 数组 不能 被转换为一个 NSMutableArray
但是出于所有意图和目的,一个 Swift 数组和 NSArray
是完全可以互换的。如果你想初始化一个NSMutableArray
,你所要做的就是:
var mutableArray : NSMutableArray = NSMutableArray(array: swiftArray)
【讨论】:
【参考方案2】:您可以将 [AnyObject] 声明为 VAR 而不是 LET,并且可以将对象附加到它,它将是可变对象。如果这是目的,则无需将 [AnyObject] 转换为 NSMutableArray。
【讨论】:
【参考方案3】:你可以试试下面的答案
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()
)
【讨论】:
【参考方案4】:尝试通过将AnyObject
替换为NSMutableArray
来更改以下行:-
let tempArray : NSMutableArray = trackList.items
【讨论】:
以上是关于`[AnyObject]` 到 NSMutableArray的主要内容,如果未能解决你的问题,请参考以下文章
如何将 NSString 值设置为 NSMutable 字典?