「Ios/swift/クラス」の版間の差分
提供: 初心者エンジニアの簡易メモ
(同じ利用者による、間の4版が非表示) | |||
行20: | 行20: | ||
user.setName("suzuki"); | user.setName("suzuki"); | ||
user.getName() // suzuki | user.getName() // suzuki | ||
+ | |||
+ | ==propertyの公開・非公開== | ||
+ | public var str: String // 公開 | ||
+ | public private(set) var str: String // getterのみ公開 | ||
+ | private var str: String // 非公開 | ||
==Staticを使う== | ==Staticを使う== | ||
行53: | 行58: | ||
cat.getName() // cat | cat.getName() // cat | ||
cat.getFoot() // 4 | 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) { } }