2017-01-25 19 views
0

行ごとに、各行は配列の異なるインデックスです(順番に)。ラベルの配列として配列を印刷する方法(Swift 3)

ここで(ユーザーが別のViewControllerで行われている曲を、入力する必要があるため、アレイは、今のように空である)曲のリストを保持してしまう私のクラスです:

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]()) 

第三のViewControllerをします私は、配列を表示するラベルをしたい:

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」があり、それはコピーであり、突然変異の方法ではないことを示します。

songList_lbl.text = multiLineString.joined(セパレータ: "\ nを")

+0

他の方法:行を変更し 'multiLineString.joined(セパレータ:「\ nをあなたはそれがのように返すことコピーに割り当てる必要があります")' 'to' 'multiLineString.join(separator:" \ n ")' – muescha

+0

私は致命的なエラーを受け取ります:このオプションの値は、オプションの値(スレッド1 exc_bad_instruction(code = exc_1386_invop subcode = 0x0)コード:songList_lbl.text = multiLineString.joined(区切り文字: "\ n") – Michael

関連する問題