しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

2015-11-01から1ヶ月間の記事一覧

Swiftで16進数の文字列をUIColorにできるSwiftColorsというライブラリ

iOS

"#FFFFFF"といった形式の文字列をUIColorに変換してくれるSwiftColorsを使ってみました。 github.com 使い方 UIColorのInitializerに16進数の文字列を渡すとそれに対応するUIColorを取得できます。 UIColor(hexString: "#AAAAAA") 小文字でも大丈夫です。 UI…

Swiftで変数のメモリの番地を取得する

iOS

unsafeAddressOfという大域関数で取得できるようです。 普通に取得できました。 let obj = NSObject() print(unsafeAddressOf(obj)) // → 0x00007ff9c51054f0 代入した場合は同じ番地なので同じ値になります。 let obj = NSObject() let obj2 = obj print(un…

SwiftのAwesomeCacheというキャッシュライブラリでキャッシュをクリアする

iOS

キャッシュにAwesomeCacheというライブラリを使ってるのですが、AwesomeCacheは標準でキャッシュ全削除の機能を持ってません。 クリアしたい場合はキャッシュのルートディレクトリを取得してディレクトリ毎削除する方式を使うと良さそうです。 import Awesom…

iOSで乗算した色を取得する

iOS

色の乗算とは Photoshopで出てくる概念で、色と色を重ね方の一つです。 赤と赤の乗算はより濃い赤になり、青と青ならより濃い青になります。 Photoshop Manual - [ 乗算 ] とは - by StudioGraphics Swiftで乗算した色の取得する 下のように取得します。 乗…

Swiftの配列のappendでdidSetは呼ばれるか

iOS

実際に呼ばれているか 確認した所呼ばれていました。 class MyClass { var arr = [String]() { didSet { print("didSet") // appendでも呼ばれた } } } let myClass = MyClass() myClass.arr.append("TEST") なぜSwiftの配列のappendでdidSetが呼ばれるか 理…

Swiftで月・火・水…と言った曜日の文字列を取得する

iOS

DateFormatter().shortWeekdaySymbolsで取得できます。 print(DateFormatter().shortWeekdaySymbols) // → ["日", "月", "火", "水", "木", "金", "土"] ○曜日という表記はweekdaySymbolsというメソッドで取れます。 print(DateFormatter().weekdaySymbols) …

ファーストクラス・コレクション とは

ファーストクラス・コレクションという設計パターンについて調べてみました。 ファーストクラス・コレクションとは 配列をも全てクラスを作ってラップする手法です。 例としてProductsの配列を直接変数にせずに、ProductListというクラスを通して変数化する…

Tell, Don't Ask(求めるな、命じよ)

Tell, Don't Ask(求めるな、命じよ)という原則について調べてみました。 Tell, Don't Ask(求めるな、命じよ)とは クラスの役割についての原則です。 クラスを呼び出す側はAsk(求める事)はせずにTell(命令)だけするべきという原則です。 下書籍が出典のよ…

コマンドとクエリ分離原則を調べてみた

コマンドとクエリ分離原則と言う原則について調べてみました。 コマンドとクエリ分離原則とは 簡単に言うと、メソッドは 取得/更新 のどちらかだけを行うという原則です。 データの取得をする場合は更新を行わないしデータの更新をする場合は値を返さない。 …

オペランドの原則とSwift

iOS

オペランドの原則というものを学んだので書いていきます。 オペランドの原則とは オペランドの原則とは簡単に言うと「メソッドの引数にオプション的な値を入れない」という原則です。 下のようにテキストから文字列を検索するクラスを考えると、ignoreCaseは…

完全コンストラクタという良さ気な設計方法

完全コンストラクタという概念を知ったのでその事について書いてみます。 完全コンストラクタとは インスタンスの初期化時に全てのプロパティーが決まってその後変化しないようにする事です。 具体的には下のようなクラスを指します。 valueの値は初期化時に…

オブジェクト指向とは何か

今携わっているアプリの規模が大きくなってきたので、最近はクラスの分割をするようになってきました。 そこで「色々考えて分割はしているんだけどイマイチ何が正しいか分からない」って状態だったので答えを出す助けになりそうなオブジェクト指向についてち…

AutoLayoutでUILabelの可変長な文字列に対応する

iOS

UILabelで文字の長さが変わる時のAutoLayoutの設定の仕方です。 実はUIViewはWidthの指定をしなければ文字数に合わせてWidthが変化してくれます。

Swiftでobjc_getAssociatedObject/objc_setAssociatedObjectを使ってUIViewにプロパティー追加

iOS

objc_getAssociatedObject/objc_setAssociatedObjectを使ってUIViewにプロパティーを追加してみました。 追加は下のように行います。 var key = "key" extension UIView { var prop: String { get { return objc_getAssociatedObject( self, &key) as? Strin…

SwiftBondでViewとViewModelを繋いでみる

iOS

SwiftBondを試してみました。 github.com インストール CocoaPodsでインストールします。 podには"SwiftBond"でなく"Bond"と入れます。 platform :ios, "8.0" use_frameworks! pod "Bond" ViewとModelを繋いでみます ViewController, Storyboard, ViewModel…

【Xcode神プラグイン】XcodeでCocoaPodsを管理できるcocoapods-xcode-pluginを試してみた

iOS

新規アプリを作ってCocoaPodsを導入するのって地味にめんどくさいです。 ライブラリを試すために使い捨てプロジェクトを作る時とかは特にストレスです。 プロジェクトを作る コマンドでpod initしてPodfileを作成 Podfileを修正 コマンドラインでpod install…

UITextFieldの変更通知を受け取る方法

iOS

UITextFieldでユーザーが何か入力した時のイベントを取る方法です。 shouldChangeCharactersInRange 方法は2つありまして、1つ目はUITextFieldDelegateのdelegateメソッドであるtextField:shouldChangeCharactersInRange:を使う方法です。 class ViewControl…

Swift再入門35 − The Swift Programming Languageを読んでみる - GenericsのWhere文

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…

Swift再入門34 − The Swift Programming Languageを読んでみる

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…

Swift再入門33 − The Swift Programming Languageを読んでみる

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…

Swift再入門32 − The Swift Programming Languageを読んでみる

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…

Swift再入門31 − The Swift Programming Languageを読んでみる

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…

Swift再入門30 − The Swift Programming Languageを読んでみる

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…

Swift再入門29 − The Swift Programming Languageを読んでみる

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…

Swift再入門28 − The Swift Programming Languageを読んでみる

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…

Swift再入門27 − The Swift Programming Languageを読んでみる

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…

Swift再入門26 − The Swift Programming Languageを読んでみる

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…

Swift再入門25 − The Swift Programming Languageを読んでみる

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…

Swift再入門24 − The Swift Programming Languageを読んでみる

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…

Swift再入門23 − The Swift Programming Languageを読んでみる

iOS

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。 「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。 The Swift Programming Language (Swift 2.1…