是的,我知道标题似乎有点显而易见,可以轻松搜索解决方案。我知道如何将1-D NSArray
转换为Array
,这很简单。
然而,这不是我的问题,因为我的NSArray不同。请参阅以下代码
NSArray *artists;
artists = @[@"Performed by: Legendary Group", @"Performed by: Ivan Cheong",
@"Performed by: Tien Nguyen", @"", @[@"Performed by: DJ Happee From
Channel 3.3", @"Performed by: Adam Cease", @""],
@"Performed by: Music Between California and Summer", @""];
然后在cellForRowAtIndexPath
中,我就要这样访问它了:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
...
if ( [ [artists[indexPath.section] objectAtIndex:indexPath.row]
isEqualToString:@""] )
{
....
}
}
正如您可以清楚地看到的,我的NSArray在索引4处包含另一个数组。我需要这个用于琐碎的目的。
我想知道是否可以将NSArray
转换为Swift标准Array
类型?
我试图实现等价物:
var temp = NSArray()
let artists = ["Performed by: Legendary Group", "Performed by: Ivan Cheong",
"Performed by: Tien Nguyen", "", ["Performed by: DJ Happee From
Channel 3.3", "Performed by: Adam Cease", ""], "Performed by: Music
Between California and Summer", ""]
temp = artists
这可以正常使用,但是,这不符合Swift 2.0的编码标准。
我想使用Array
,但我不知道这是否可行?
由于
答案 0 :(得分:1)
创建AnyObjects数组:
let artists: [AnyObject] = ["Performed by: Legendary Group", "Performed by: Ivan Cheong",
"Performed by: Tien Nguyen", "", ["Performed by: DJ Happee From Channel 3.3", "Performed by: Adam Cease", ""], "Performed by: Music Between California and Summer", ""]
然后检查tableView函数中每个项目的类型并进行相应处理:
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell {
switch artists.indexPath {
case is String: //handle string
case is NSArray: //handle array
default: //trap other stuff
}
}