Ios/swift/クラス
提供: 初心者エンジニアの簡易メモ
目次
クラスのプロパティとメソッド
-User.swift
class User { var name: String let age: Int init(name: String, age: Int) { self.name = name self.age = age } func getName() -> String { return self.name; } func setName(name:String) { self.name = name; } }
-ViewController.swift
var user = User(name: "taro", age: 10) user.getName() // taro user.setName("suzuki"); user.getName() // suzuki
propertyの公開・非公開
public var str: String // 公開 public private(set) var str: String // getterのみ公開 private var str: String // 非公開
Staticを使う
class Utility { static func bai(a:Int) -> Int { return a * 2; } } Utility.bai(10); // 20
継承
class Animal { var name: String var foot: Int init(name: String, foot: Int) { self.name = name self.foot = foot } func getName() -> String { return self.name; } func getFoot() -> Int { return self.foot; } } class Cat: Animal { init() { super.init(name: "cat", foot: 4) } } var cat = Cat() cat.getName() // cat cat.getFoot() // 4
クラスから生成したインスタンスを配列に入れる
class User { var name:String = "" var age:Int = 0 init(name: String, age: Int) { self.name = name self.age = age } } var users:Array<User> = [] let user = User(name: "taro", age: 10) as User let user2 = User(name: "jiro", age: 20) as User users.append(user) users.append(user2) print("name=" + users[0].name) // taro for user in users { print("name=" + user.name); // taro, jiro print("age=" + String(user.age)); // 10, 20 }
NSObjectを継承すべきか
遅くなるようなので、なくてよい
参考:http://mpon.hatenablog.com/entry/2015/08/13/174157
インターフェイスを個別に実装
例としてScrollViewDelegate
extension SampleViewController: UIScrollViewDelegate { public func scrollViewDidScroll(scrollView: UIScrollView) { } }