UITableViewを使ったプログラム内のインスタンス、関数、引数について
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var dataArray:[Int] = []
// ボタンが押された時にデータを追加する
@IBAction func add(sender: UIBarButtonItem) {
dataArray.append(dataArray.count)
tableView.reloadData()
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: UITableViewDataSource プロトコルのメソッド
// TableView の各セクションのセルの数を返す
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArray.count
}
// 各セルの内容を返す
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// 再利用可能な cell を得る
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Cell")
// Cellに値を設定する.
cell.textLabel?.text = "\(dataArray[indexPath.row])"
cell.detailTextLabel?.text = "Subtitle \(dataArray[indexPath.row])"
return cell
}
}
いくつか質問があります。
上記のプログラムで
@IBOutlet weak var tableView: UITableView!
このtableViewは関数ですか?それともインスタンスですか?
また
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArray.count
}
で引数となっているnumberOfRowsInSectionはメソッドだと思うのですが
それがどうして引数になるのですか?
最後にこのプログラムは関数を定義しているだけなのに
どうして実行するのかが分かりません。
たくさんの質問をすいませんがよろしければ
回答を宜しくお願いします。