「Ios/swift/クラス」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==クラスのプロパティとメソッド== class User { let name: String var age: Int init(name: String, age: Int) { self.name = name sel...」) |
|||
(同じ利用者による、間の7版が非表示) | |||
行1: | 行1: | ||
==クラスのプロパティとメソッド== | ==クラスのプロパティとメソッド== | ||
+ | -User.swift | ||
class User { | class User { | ||
− | + | var name: String | |
− | + | let age: Int | |
init(name: String, age: Int) { | init(name: String, age: Int) { | ||
self.name = name | self.name = name | ||
行9: | 行10: | ||
func getName() -> String { | func getName() -> String { | ||
return self.name; | return self.name; | ||
+ | } | ||
+ | func setName(name:String) { | ||
+ | self.name = name; | ||
} | } | ||
} | } | ||
+ | -ViewController.swift | ||
var user = User(name: "taro", age: 10) | var user = User(name: "taro", age: 10) | ||
user.getName() // taro | 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を使う== | ==Staticを使う== | ||
行21: | 行33: | ||
} | } | ||
Utility.bai(10); // 20 | 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) { | ||
+ | } | ||
+ | } |
2016年8月12日 (金) 23:55時点における最新版
目次
クラスのプロパティとメソッド
-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) { } }