iOSプログラミングのSunghyeon教授7週間のコースまとめ
カバー:親と子供が同じ方法を持っている場合は、子供を優先します.
class Man{
var age : Int = 1
var weight : Double = 3.5
func display(){
print(「年齢=(age)、体重=(weight))
class Student : Man {
var name : String = "YOO"
override func display() {
print(「名前=(name)、年齢=(age)、体重=(weight))
}
init(age: Int, weight : Double, name : String){
super.呼び出しinit(age:age,weight:weight)/親init関数
self.name = name
}
}
var yoo:Man=Man(年齢:21、重量:82.9)/親呼び出し
yoo.display()
var kim:student=student(age:32,weight:74.2,name:「kim chulsu」)/サブクラス呼び出し
kim.display()
//年齢=21、体重=82.9
//名前=kim chulsu、年齢=32、体重=74.2
質問:クラスを検索して短いヘルプを作成する
Class : UISwitch
UIswitchクラスは、制御属性とそのオン/オフ状態を宣言する方法です.
UIsliderと同様に、ユーザーがスイッチコントロールを操作すると、値の変更イベントがトリガーされます.
スイッチをオンまたはオフにするときにスイッチの色を変更することで、スイッチの形状をカスタマイズできます.
init?(coder: NSCoder)
unarchiverのデータからスイッチコントロールを生成します.
var isOn: Bool
bool値はスイッチのオフ/オン状態を決定します.
var onTintColor: UIColor?
スイッチの色はUICOLOR値で決まります.
Lazy var controlSwitch:UI Switch={/UI Switchクラスを継承するcontrolSwitch関数の作成
let swicth:UIswitch=UIswitch()/switchジェネレータ
swicth.layer.position = CGPoint(x: self.view.frame.width/2, y: self.view.frame.height - 200)
//switch作成者でレイヤの位置とサイズを設定する
swicth.tintColor = UIColor.オレンジ//switchジェネレータの色を指定
swicth.ison=true//switch作成者のステータスを開くように指定します.
return swicth
}
出典:https://calmone.tistory.com/entry/iOS-UIKit-in-Swift-4-UISwitch-使用[Today IT]
Class : UIButton
ユーザインタラクションへの応答として、カスタムコードのコントロールを実行します.
init(frame: CGRect)
指定したフレームで新しいボタンを作成する
var tintColor: UIColor!
Buttonの色はUICOLOR値で決まります.
class DefaultBtn:UIButton{//defaultBtn UIButton継承
let button:UIButton=UIButton()/buttonジェネレータ
override init(frame: CGRect) {
super.Init(フレーム:フレーム)/継承init関数の使用
}
button.tintcolor = UIColor.red//buttonジェネレータの色を指定します
}
ソース:https://jiseobkim.github.io/swift/2018/07/15/swift-UIButton-第二課html
extension
extension Double {
var平方:Double//計算プログラム
return self * self
}
}
let myVal: Double = 4.0
print(myVal.squared)
print(2.4.squared)/double型値.今すぐ利用可能
//16.0
//5.76
swiftのアクセス制御
public class MyClass{
//モジュールのすべてのソースファイルからアクセスするか、定義されたモジュールを含む他のモジュールのソースファイルからアクセスできます.
fileprivate varname:String="Yoo"//現在のソースファイルでのみ使用可能
private func play() {
プロトコル定義
プロトコル名{
プログラム名
メソッド宣言//メソッド宣言のみ
}
プロトコル名:親1プロトコル、親2プロトコル{
//プロトコルは複数継承可能
}
プロトコルおよびプロトコル/メソッド宣言
protocol SomeProtocol {
var x:Int{get set}//読み書き可能
可変:Int{get}//読み取り専用
static var tx: Int { get set }
static func typeMethod()
func random() -> Double
}
プロトコルの定義、採用、遵守
プロトコルRunnable{//エージェントを作成する関数のリスト
var x:Int{get set}//読み書き可能な構成、{get}は読み取り専用
//property in protocol must have explicit { get } or { get set } specifier
func run()
}
類Man:Runnable{//採用、採用
var x:Int=1//コンプライアンス、conform
func run(){//コンプライアンス、conform
print(「走った~」
}
//方法宣言のみ
}
var yoo : Man = Man()
yoo.run()
走った~
課題
次の機能をソース全体として記述します.
bb()というメソッドのプロトコル(プロトコル)Bを作成します.
bb()メソッドは,Int型値をパラメータとしてInt型を返すメソッドである.
A類にはC類の親がいる(Cから受け継ぐ).
AクラスでプロトコルBを使用し、条件を満たすソースを作成します.
bb()メソッドは,パラメータとしてInt型の値を受け入れ,2倍の値をInt型に返す.
Aクラスのインスタンスaを作成し、bb(パラメータとして3を入力)を呼び出して結果を検証します.
自分で試したコード
class C{
func bb(x num : Int) -> Int {
let result = num * 2
return result
}
}
protocol B {
func bb(x num : Int) -> Int
}
class A : C,B{
}
var a : A = A()
print(a.bb(x: 3))
//6
教授の答え
protocol B {
func bb(x:Int) ->Int
}
class C {
}
class A : C, B {
func bb(x:Int) -> Int {
return x * 2
}
}
var a = A()
print(a.bb(x:3))
//6
中間試験の準備
class C{
var age : Int = 20
func bb(x num : Int) -> Int {
let result = num 2
return result
}
init(age : Int) {
self.age=age
}
}
protocol B {
func bb(x num : Int) -> Int
}
class A : C,B{
var name : String = "YOO"
override func bb(x num : Int) -> Int {//overriding
let result = num 2
return result
}
func display() {
print("AGE = (age), NAME = (name)")
}
init(age: Int, name : String){//overloading
super.init(age:age)
self.name = name
}
}
var Yoo : A = A(age:24, name: "YooJaeWoo")
Yoo.display()
print(Yoo.bb(x:4))
列挙定義
enum Planet {
case Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune }
enum Compass {
case North
case South
case East
case West
}
print(Compass.North)/列挙名.メンバー#メンバー#
var direction = Compass.West
direction = .East//2番目から列挙名は省略できます
print(direction, type(of:direction))
print(Planet.Mercury)
//North
//East Compass
//Mercury
メンバー定義機能の列挙
enum Compass {
case North
case South
case East
case West
}
var direction : Compass
direction = .South
switch direction {
case .North:
print(“book”)
case .South:
print(「男」)
case .East:
print(「東」)
case .West:
print(「西」)
}
男の人
class Man{
var age : Int = 1
var weight : Double = 3.5
func display(){
print(「年齢=(age)、体重=(weight))
}
init(age: Int, weight : Double){
self.age = age
self.weight = weight
}
}class Student : Man {
var name : String = "YOO"
override func display() {
print(「名前=(name)、年齢=(age)、体重=(weight))
}
init(age: Int, weight : Double, name : String){
super.呼び出しinit(age:age,weight:weight)/親init関数
self.name = name
}
}
var yoo:Man=Man(年齢:21、重量:82.9)/親呼び出し
yoo.display()
var kim:student=student(age:32,weight:74.2,name:「kim chulsu」)/サブクラス呼び出し
kim.display()
//年齢=21、体重=82.9
//名前=kim chulsu、年齢=32、体重=74.2
質問:クラスを検索して短いヘルプを作成する
Class : UISwitch
UIswitchクラスは、制御属性とそのオン/オフ状態を宣言する方法です.
UIsliderと同様に、ユーザーがスイッチコントロールを操作すると、値の変更イベントがトリガーされます.
スイッチをオンまたはオフにするときにスイッチの色を変更することで、スイッチの形状をカスタマイズできます.
init?(coder: NSCoder)
unarchiverのデータからスイッチコントロールを生成します.
var isOn: Bool
bool値はスイッチのオフ/オン状態を決定します.
var onTintColor: UIColor?
スイッチの色はUICOLOR値で決まります.
Lazy var controlSwitch:UI Switch={/UI Switchクラスを継承するcontrolSwitch関数の作成
let swicth:UIswitch=UIswitch()/switchジェネレータ
swicth.layer.position = CGPoint(x: self.view.frame.width/2, y: self.view.frame.height - 200)
//switch作成者でレイヤの位置とサイズを設定する
swicth.tintColor = UIColor.オレンジ//switchジェネレータの色を指定
swicth.ison=true//switch作成者のステータスを開くように指定します.
return swicth
}
出典:https://calmone.tistory.com/entry/iOS-UIKit-in-Swift-4-UISwitch-使用[Today IT]
Class : UIButton
ユーザインタラクションへの応答として、カスタムコードのコントロールを実行します.
init(frame: CGRect)
指定したフレームで新しいボタンを作成する
var tintColor: UIColor!
Buttonの色はUICOLOR値で決まります.
class DefaultBtn:UIButton{//defaultBtn UIButton継承
let button:UIButton=UIButton()/buttonジェネレータ
override init(frame: CGRect) {
super.Init(フレーム:フレーム)/継承init関数の使用
}
button.tintcolor = UIColor.red//buttonジェネレータの色を指定します
}
ソース:https://jiseobkim.github.io/swift/2018/07/15/swift-UIButton-第二課html
extension
extension Double {
var平方:Double//計算プログラム
return self * self
}
}
let myVal: Double = 4.0
print(myVal.squared)
print(2.4.squared)/double型値.今すぐ利用可能
//16.0
//5.76
swiftのアクセス制御
public class MyClass{
//モジュールのすべてのソースファイルからアクセスするか、定義されたモジュールを含む他のモジュールのソースファイルからアクセスできます.
fileprivate varname:String="Yoo"//現在のソースファイルでのみ使用可能
private func play() {
} //현재 블럭 내에서만 사용 가능
func display(){
} // internal 생략됨
//해당 모듈의 모든 소스 파일 내에서 사용
}プロトコル定義
プロトコル名{
プログラム名
メソッド宣言//メソッド宣言のみ
}
プロトコル名:親1プロトコル、親2プロトコル{
//プロトコルは複数継承可能
}
プロトコルおよびプロトコル/メソッド宣言
protocol SomeProtocol {
var x:Int{get set}//読み書き可能
可変:Int{get}//読み取り専用
static var tx: Int { get set }
static func typeMethod()
func random() -> Double
}
プロトコルの定義、採用、遵守
プロトコルRunnable{//エージェントを作成する関数のリスト
var x:Int{get set}//読み書き可能な構成、{get}は読み取り専用
//property in protocol must have explicit { get } or { get set } specifier
func run()
}
類Man:Runnable{//採用、採用
var x:Int=1//コンプライアンス、conform
func run(){//コンプライアンス、conform
print(「走った~」
}
//方法宣言のみ
}
var yoo : Man = Man()
yoo.run()
走った~
課題
次の機能をソース全体として記述します.
bb()というメソッドのプロトコル(プロトコル)Bを作成します.
bb()メソッドは,Int型値をパラメータとしてInt型を返すメソッドである.
A類にはC類の親がいる(Cから受け継ぐ).
AクラスでプロトコルBを使用し、条件を満たすソースを作成します.
bb()メソッドは,パラメータとしてInt型の値を受け入れ,2倍の値をInt型に返す.
Aクラスのインスタンスaを作成し、bb(パラメータとして3を入力)を呼び出して結果を検証します.
自分で試したコード
class C{
func bb(x num : Int) -> Int {
let result = num * 2
return result
}
}
protocol B {
func bb(x num : Int) -> Int
}
class A : C,B{
}
var a : A = A()
print(a.bb(x: 3))
//6
教授の答え
protocol B {
func bb(x:Int) ->Int
}
class C {
}
class A : C, B {
func bb(x:Int) -> Int {
return x * 2
}
}
var a = A()
print(a.bb(x:3))
//6
中間試験の準備
class C{
var age : Int = 20
func bb(x num : Int) -> Int {
let result = num 2
return result
}
init(age : Int) {
self.age=age
}
}
protocol B {
func bb(x num : Int) -> Int
}
class A : C,B{
var name : String = "YOO"
override func bb(x num : Int) -> Int {//overriding
let result = num 2
return result
}
func display() {
print("AGE = (age), NAME = (name)")
}
init(age: Int, name : String){//overloading
super.init(age:age)
self.name = name
}
}
var Yoo : A = A(age:24, name: "YooJaeWoo")
Yoo.display()
print(Yoo.bb(x:4))
列挙定義
enum Planet {
case Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune }
enum Compass {
case North
case South
case East
case West
}
print(Compass.North)/列挙名.メンバー#メンバー#
var direction = Compass.West
direction = .East//2番目から列挙名は省略できます
print(direction, type(of:direction))
print(Planet.Mercury)
//North
//East Compass
//Mercury
メンバー定義機能の列挙
enum Compass {
case North
case South
case East
case West
}
var direction : Compass
direction = .South
switch direction {
case .North:
print(“book”)
case .South:
print(「男」)
case .East:
print(「東」)
case .West:
print(「西」)
}
男の人
Reference
この問題について(iOSプログラミングのSunghyeon教授7週間のコースまとめ), 我々は、より多くの情報をここで見つけました https://velog.io/@blooper20/iOS-프로그래밍-한성현교수님-7주차-수업정리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol