私は、テキストドキュメントから行を読み込んで最初の行を出力する迅速なクラスを持っています。その後、ボタンをクリックするたびに新しい行が読み込まれます。Swift:ボタンをクリックするたびにランダムな配列インデックスを表示します。
ランダムな線を最初に印刷してから、ボタンをクリックするたびにランダムな線が印刷されます。
は、ここで私がこれまで持っているものです。
import Foundation
import UIKit
class InfoController: UIViewController {
// MARK: Properties
@IBOutlet weak var difficultylevel: UILabel!
var i:Int = 0
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func readFile(){
if let path = NSBundle.mainBundle().pathForResource("easymath", ofType: "txt"){
var data = String(contentsOfFile:path, encoding: NSUTF8StringEncoding, error: nil)
if let content = data {
let myStrings = content.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet())
let randomIndex = Int(arc4random_uniform(UInt32(myStrings.count)))
difficultylevel.text = myStrings[randomIndex]
}
}
}
@IBAction func difficultybutton(sender: UIButton) {
difficultylevel.text = // TODO insert random index of "myStrings" array here
}
}
しかし、私はボタンクリック内のTODO部にmyStringsアレイにアクセスすることはできません。これを設定する方法についてのヘルプはありますか?
'myStrings'をローカル変数の代わりにプロパティにします(そして_scope_について学びます)。 – matt
また、ある時点で 'readFile()'を呼び出すこともできます。おそらく 'viewDidLoad'で –