facebook twitter hatena line email

「Ios/swift/クラス」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
 
(同じ利用者による、間の5版が非表示)
行1: 行1:
 
==クラスのプロパティとメソッド==
 
==クラスのプロパティとメソッド==
 +
-User.swift
 
  class User {
 
  class User {
 
     var name: String
 
     var name: String
行14: 行15:
 
     }
 
     }
 
  }
 
  }
 +
-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.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を使う==
行51: 行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) {
    }
}