Skip to content

Instantly share code, notes, and snippets.

@nazo
Created May 14, 2020 05:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nazo/216bea0fdbf628668ac17f687df0da08 to your computer and use it in GitHub Desktop.
Save nazo/216bea0fdbf628668ac17f687df0da08 to your computer and use it in GitHub Desktop.
swift/ios
アノテーション
`@IBInspectable` : カスタムコンポーネントの描画をIB編集画面にリアルタイムで反映させる。プロパティに設定するとUIで編集可能になる(UnityのSerializeFieldみたいなの)
`@objc` : swiftのコードをobjcから呼べるようにするためのもの
`@testable` : internalにアクセス可能になる(privateは不可)
クラス
`required` : 継承必須にする
`convenience` : 他のイニシャライザを呼ぶ場合に使う
`init` : コンストラクタ
`init?` にするとコンストラクタが失敗する場合(nilを返す)に適応する
変数
`guard ... else { }` ... がfalseの場合にelseを実行
`defer` スコープアウトする時に実行される(Goと同じ)
Optional
`!` 強制unwrapする
`as!` 指定型に確定で変換する
チュートリアルの内容の最新バージョンXcodeとの違い
`index(of:)` -> `firstIndex(of:)` 複数マッチする場合でも最初のものだけ返すからってこと?
テストコード中 `Meal.init` -> `FoodTracker.Meal.init` 暗黙の名前空間解決してくれなくなったっぽい?
`NSKeyedArchiver.archiveRootObject` -> `NSKeyedArchiver.archivedData(withRootObject`
仕組みが違う
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment