[Xcode]Cocoa Touch ClassとSwift Fileの違いはなに?
Xcode上で新規ファイルを作成する時に、Cocoa Touch ClassやSwift Fileを選択することができます。
どっちも同じようなファイルが生成されるので、その違いは何なのでしょうか?
[Xcode]Cocoa Touch ClassとSwift Fileの違いはなに?
少し気になったので備忘録を兼ねてメモ。
どっちもSwiftファイルが生成されるわけですが、中身が若干違います。
簡潔に言うと、Swift Fileの場合シンプルなほぼ白紙なファイルが作成されます。
import Foundation
中身はこれだけ。
実際のこのままNextを押してファイルを作成すると、
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } /* // MARK: - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation override func prepare(for segue: UIStoryboardSegue, sender: Any?) { // Get the new view controller using segue.destinationViewController. // Pass the selected object to the new view controller. } */ }
こういったファイルが作成されます。このファイルどこかで見た覚えがありませんか?
これはXcodeを立ち上げた時に最初から挿入されているViewControllerファイルですね。
このように、雛形とも言えるファイルを作成した時にCocoa Touch Classを選択することになります。
上記の例ではViewControllerファイルを作成しましたが、もしテーブルビューを作成したければ、その雛形も作成できます。
import UIKit class TableViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() // Uncomment the following line to preserve selection between presentations // self.clearsSelectionOnViewWillAppear = false // Uncomment the following line to display an Edit button in the navigation bar for this view controller. // self.navigationItem.rightBarButtonItem = self.editButtonItem } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } // MARK: - Table view data source override func numberOfSections(in tableView: UITableView) -> Int { // #warning Incomplete implementation, return the number of sections return 0 } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { // #warning Incomplete implementation, return the number of rows return 0 } }
中身を見るとテーブルビューコントローラーの雛形が入っているのが分かります。