サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
装丁を味わう
kitoko552.hatenablog.com
要点 AlamofireのSwift 3対応バージョンである4.0.0は対応OSがiOS 9以上 iOS 8でも使いたい場合は、フォークしてURLSessionStreamTaskを使っている部分をコメントアウトすると使える Swift 3登場 先日正式版のiOS 10, Xcode 8がリリースされ、既存のアプリをSwift 3で書き換えようと思っているプロジェクトが多いのではないでしょうか。 Swiftのアップデートではアプリそのもののコードだけでなく、使っているライブラリもアップデートしなければいけません。 使っているライブラリが全てSwift 3対応バージョンをリリースしている、かつ、自分のアプリの対応OSバージョンをカバーしているのであれば単純にライブラリのバージョンをアップデートすればいいだけですが、そうでない場合もあります。 ライブラリがSwift 3に対応する気配がない場合
2016 - 02 - 04 クロージャでselfをweakにする必要があるときとしなくてもいいときの違い Swift list Tweet 要点 そもそもなんでクロージャでselfをweakにするのか weakにする必要がある場合 しなくてもいい場合 全部weakでも問題はない 要点 クロージャでselfをweakにするのは、循環参照を避けるため。 クロージャでselfをweakにする必要があるときは、そのクロージャの持ち主がselfを強参照しているとき。 しなくてもいいときは、そのクロージャの持ち主がselfを強参照していないとき。 全部weakにしても問題はない。 そもそもなんでクロージャでselfをweakにするのか そもそもなんでクロージャでselfをweakにするのかがわかっていないと、selfをweakにする必要があるときとしなくてもいいときとの違いはわかりません。 結論から
要点 enumの宣言の前に@objcをつける。 enumはIntとして宣言する必要がある。 IntでないenumはObjective-Cからは使えない。 // 使えない enum Hoge: String { case hoge ... } // 使える @objc enum Hoge: Int { case hoge ... } Swiftのenum Swiftではenumの自由度がかなり高いです。 特に異なるタプル構造を持たせることができる機能は特徴的だと言えます。 enum Season { case Spring(String) case Summer(Int, Int) case Autumn case Winter(Int) } 当然ながら、Objective-Cのenumにはこんな機能はありません。 このことからもわかるように、Objective-CとSwiftのenumは別
要点 Swiftではmap, filter, flatMap, forEachを使えばfor文は必要ありません。 mapの例 let numbers: [Int] = [1, 2, 3] // for文 var twice = [Int]() for num in numbers { twice.append(num * 2) } // map let twice = numbers.map { $0 * 2 } // twice = [2, 4, 6] filterの例 let numbers: [Int] = [1, 2, 3] // for文 var odd = [Int]() for num in numbers { if num % 2 != 0 { odd.append(num) } } // filter let odd = numbers.filter { $0 % 2 !
2016 - 02 - 04 Swiftでクロージャをネストしたときのselfについて Swift list Tweet 要点 クロージャについて クロージャをネストするときの疑問点 guardを使っているときは注意 解決策 参照を意識する 要点 クロージャを使うときは、再度 [weak self] を宣言する必要はなく、そのままself?を使う。 しかし、1つ目のクロージャ内でguardを使ってself(weak)を新しい変数にretainしている場合、その変数をそのまま2つ目のクロージャ内で使うのは危険。 その場合は、2つ目のクロージャ内でもguard文を追加するか、self?をそのまま使う。 hoge { [ weak self ] _ in guard let me = self else { return } ... fuga . fetch { _ in // let gebo
2016 - 01 - 21 はてなブログで目次をカスタマイズする ブログ運営 CSS list Tweet 要点 目次ってどうやって出すの? でもちょっとダサい 目次を番号付きにする それぞれの見出しから下線を取り除く borderを入れる おまけ:「目次」という文字を入れる カスタマイズは自分のブログになじむようにする 要点 挿入したい行に [:contents] と書くと目次が自動で挿入される 目次のclassは table-of-contents なのでこいつをCSSでいじることでデザインを変更する 目次ってどうやって出すの? staff.hatenablog.com ここに書いてある通りです。 編集モードがなんであれ、挿入したい行に [:contents] を書けば自動で目次が作られます。 簡単! でもちょっとダサい 簡単に目次を入れられるのはとてもありがたいんですが、正直言って
2016 - 02 - 11 はてなブログのリンク枠の横幅を変える ブログ運営 CSS list Tweet 要点 リンクの枠の幅が中途半端 HTMLを調べる 普通にCSSを書くとうまくいかない 設定したCSSが反映されない理由 指定したCSSが採用される順番 !importantを使って強制的に反映させる 要点 リンクの枠は iframe この iframe は最大幅がHTMLに直接書かれている( max-width: 500px ) CSSには !important をつけないと反映されない .entry-content iframe { max-width : 100% !important ; } リンクの枠の幅が中途半端 デザインやテーマにもよりますが、僕のブログの場合はリンクの枠の横幅が中途半端になっていました。 このままでもいいんですが、個人的に気に食わなかったので横幅を文章
2016 - 02 - 10 はてなブログのプロフィールを非表示にする(スマホ) ブログ運営 CSS list Tweet 要点 スマホ用画面の話です 過去記事と要領は同じ CSSを書く場所 消します 要点 スマホだけに適用される部分に以下を書く。 .hatena-module.profile { display : none ; } スマホ用画面の話です まず、この記事ははてなブログのスマホ用画面に関するものです。 スマホ画面にレスポンシブデザインのテーマを採用している方は対象じゃありません。 PC画面のプロフィールはデザイン設定のサイドバーから普通に削除すれば非表示になります。 過去記事と要領は同じ 僕は過去にも色々非表示にしてきています。 要領は過去記事と同じで、対象となっているHTMLタグの id または class に対して display: none; にするだけです。 なので
UIButtonのタップ検知は簡単ですが、UIButton以外のviewに対するタップイベントを取得したいときがあります。 そういったときは、以下を行います。 タップイベントを取得したいviewのuserInteractionEnabledをtrueにする。 タップイベントを取得したいviewにaddGestureRecognizerを設定する。 以下、実装例です。 class ViewController: UIViewController { @IBOutlet weak var sampleImageView1: UIImageView! @IBOutlet weak var sampleImageView2: UIImageView! override func viewDidLoad() { super.viewDidLoad() sampleImageView1.userInt
まず、Swiftのイニシャライザに関するキーワードを整理します。 指定イニシャライザ(designated initializer) 簡易イニシャライザ(convenience initializer) 必須イニシャライザ(required initializer) 失敗のあるイニシャライザ(failable initializer) それぞれの説明を以下に示します。 インスタンスの初期化がすべて完了できるイニシャライザ 他のイニシャライザの助けを借りることで初期化を行うイニシャライザ(initの前にconvenienceを付ける) 継承先のサブクラスで必ず実装しなければならないイニシャライザ(initの前にrequiredを付ける) 初期化が失敗した場合にnilを返すイニシャライザ(init?と記述する) それぞれの例を以下に示します。 class Human { var name: S
このページを最初にブックマークしてみませんか?
『kitoko552.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く