2017-01-25 45 views
0

按行我的意思是每行是数组的不同索引(按顺序)。如何打印数组作为行中的标签(Swift 3)

这里是我的班,将持有的歌曲(数组是空的,因为现在因为用户需要输入的歌曲,但是以另一种视图控制器完成)的列表:

class Songs { 
private var _songs : [String] 
var songs : [String] 
    { 
    get 
    { 
     return _songs 
    } 
    set (newSongs) 
    { 
     _songs = newSongs 
    } 
} 

init(songs: [String]) 
{ 
    self._songs = songs 
} 

func songList() -> [String] { 
    let songs = _songs 
    return songs 
} 
} 
var songList = Songs (songs: [String]()) 

第三视图控制器中我想标签显示阵列:

class ThirdViewController: UIViewController { 
// Properties 
@IBOutlet weak var songList_lbl: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    var multiLineString = songList.songList() 
    multiLineString.joined(separator: "\n") // warning telling me separator is unused 

    songList_lbl.text = multiLineString // error telling me cannot assign value of type '[String]' to type 'String?' 
    songList_lbl.numberOfLines = 0 // code I found but haven't tested out yet 
    songList_lbl.lineBreakMode = NSLineBreakMode.byWordWrapping 
    songList_lbl.sizeToFit() 

    // Do any additional setup after loading the view. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

我也尝试转储数组,但我仍然得到值类型错误。

回答

1

加入了它的“ed”,并且在swift中表示是复制,而不是变异方法。你必须分配给它返回像副本:

songList_lbl.text = multiLineString.joined(分隔符: “\ n”)

+0

其他的方式:改变行'multiLineString.joined(分隔符:“\ n “)to'multiLineString.join(separator:”\ n“)' – muescha

+0

我得到一个致命错误::意外地发现nil,同时展开一个可选值(线程1 exc_bad_instruction(code = exc_1386_invop subcode = 0x0)) code:songList_lbl.text = multiLineString.joined(separator:“\ n”) – Michael