タコさんブログ

プログラミングメモと小言

iOS

Swift 2.0 の indirect で2分探索木(Binary search tree)を試す

indirectが使用できる前はBoxクラスなんかを使って再帰的なenumデータ型 を実装していたみたいだが、indirectを使えばBoxクラス等を使わずにシンプルにList, Tree なんかを書ける。 環境 Xcode 7.0 beta 4 Swift 2.0 2分探索木 元ネタは すごいHaskellたのし…

Google Analytics for iOS with Swift

CocoaPodsを使用しないで、Google Analyticsを入れる方法 手動でGoogle Analyticsのスクリーン計測を行うまでをメモしておく。 環境 Xcode 7.1 (Xcode 6.4) Swift 2.1 (Swift 1.2) 準備 Google Developers Download the SDKからからzipをダウンロードする。…

SwiftのRangeからArrayを取得する方法

環境 swift 1.2 方法その1 mapを使う let range = Range(start: 0, end: 10) let array = range.map{$0} println(array) // => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 方法その2 Array#initから生成する let range = Range(start: 0, end: 10) let array = Array…

カスタム画面遷移でモーダル表示をしたとき、dismissしたら画面が無くなっている!?

環境 swift 1.2 target iOS 8 Xcode 6.3 iPhone 6 Simulator (実機では試していない) 現象 プログラムの内容:カスタム画面遷移でモーダル画面を表示させて、モーダル画面内のボタンが押されたら dismissViewControllerAnimated でカスタム画面遷移でモーダ…

Alamofireを手動で入れる(メモ)

AlamofireのManuallyに書いてある通り、git gubmoduleを使ってAlamofireを使用するやり方。 プロジェクト作成 Alamofireを使用するプロジェクトを作成する。このときSource ControlのCreate Git repositoryにチェックを入れておく。 Git submodule 作成した…

そうですか〜Carthageさん

Carthage BUILD FAILED 今流行り(?)のCarthageを使ってみようと思って、Cartfileを用意したあとにcarthage updateをしたら、下のエラーがでる。 ** BUILD FAILED ** The following build commands failed: Check dependencies (1 failure) xcodebuildのロ…

Swift Closure クロージャ記法 いろいろ

環境 Swift 1.2 Swiftのクロージャ構文 Swiftでのクロージャは以下のように書く { (仮引数) -> (戻り値の型) in クロージャ Body } Swiftのクロージャ記法いろいろ 前提 以下のIntの配列とsortedを例として使用する。 let numbers: Array<Int> = [5, 4, 9, 10, 6,</int>…

UIScrollView, UIWebView等のContent Insetを調整する

全画面にUIScrollView(UIWebView)を配置すると、ステータスバーを表示している場合、下の図のように、ステータスバーの下にコンテンツが重なって表示されてしまう。 このとき、スクロールヴューの余白、スクロールバーの開始位置を以下のように調整する必…

Auto LayoutのConstraintをアニメーションさせる

Auto Layoutを使用しているときに制約をアニメーションさせる方法 今回やるアニメーションは、ボタンを押したら下の位置にある緑色のヴュー(画面外)が 表示されていないとき、ヴューが中央まで表示される 表示されているとき、ヴューが下の位置に戻る レイ…

StoryboardのUnwind SegueにIdentifierをつける

Unwind SegueにIdentifierをつけれることを知らなかったので、メモしておきます。 画面遷移 FirstViewControllerにModalボタンを配置して、押されたら、モーダル表示でナビゲーションコントローラに埋め込んだSecondViewControllerの画面を表示。SecondViewC…

Auto Layout + Superview's Ratio + Swift code

AutoLayoutで比を使う SwiftのコードでUIView(aView)を生成して、以下の制約をコードでつけます。 ViewController.view の width : aView の width = 3 : 1 ViewController.view の height : aView の height = 4 : 1 どんなディスプレイサイズになっても、…

Storyboard + Auto Layout + Custom TableView Cell (xib)

Auto Layout + xibのCustom TableView Cellを使う方法 UITableViewControllerは使わずに、UIViewControllerにUITableViewを配置して、作りました。 完成品はこちら カスタムセルのxibは以下のような感じです。制約は縦横中央寄せで、幅は Superview.Leading=…

MavericksにAppiumをインストールしてみる

Rubyを書いてみたいので、テストコードをrubyで動かせるように、公式を参考に必要なものをインストールしていく。まずは、Rubyのインストールから $ \curl -sSL https://get.rvm.io | bash -s stable rvm install ruby -bash: rvm: command not foundとコケ…

The Swift Programming LanguageのFunctionsメモ

前回の続き。Constants and Variable Parametersあたりから。 関数のパラメータ 関数のパラメータはデフォルトで定数パラメータになる。つまり、パラメータの前に何も書かなければではletが自動でつく。明示的に関数を書くと下のようになる。 func someFunct…

ParseUI iOSでハマった

iOS

ParseUIをGitからクローンしてきて、Build from Sourceに書いてあるとおりParseUIDemoを試してみたけど、下のようなエラーがでて、コンパイルできない。 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: …

Swift Functions メモ

The Swift Programming LanguageのFunctionsセクションのメモ。 関数の定義 Swiftの関数はfuncキーワードから始まり、次のように書く。 func function_name(parameters) -> return_type { // 関数ボディ return return_value } 文字列personNameを受け取り"H…

Auto Layoutメモ

Visual Format Language (視覚的書式言語) Visual Format Language (VFL)を使ってみたので、メモしておく。先に感想を言うと、慣れれば楽なのかもしれないが、慣れるまでが大変。慣れれば、サクっと書くには良いのかもしれないが、IB上でやったほうが楽。 …