タコさんブログ

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

swift の as as! as? オペレータ (Type Cast Operator) と is (Type Check Operator) とパターンマッチ

環境 swift 2.0 xcode 7 beta 5 as オペレータ Swfitコンパイラにより型変換・キャストが成功すると保証されるときに使用 アップキャスト リテラルの型を指定 class Animal {} class Dog: Animal {} let dog = Dog() let animal = dog as Animal // アップキ…

Swiftで作ったアプリをリリースしました!!

Swiftで作ったカジュアルゲームです! 土日を使って少しずつ作りました。 モチベーションが上がらないときはコワーキングスペースに行ってみたりして作業しましたが、 基本的には引きこもって作業。 Swift良いですね! Tap Speedokuhiro ohmutaゲーム無料

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のロ…

今さらvimにHaskellのプラグインを入れてみた

NeoBundleの導入 ディレクトリをつくる $ mkdir -p ~/.vim/bundle gitからクローンする $ git clone git://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim NeoBundleの設定とプラグインのインストール githubを参考に.vimrcにNeoBundleを設定…

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

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

すごいHaskell 第5章 高階関数 メモ

カリー化関数 カリー化された関数とは、複数の引数を取る代わりに、常に1つの引数を 取る関数 Haskellの関数はすべてカリー化されている カリー化より、関数を本来より少ない引数で呼び出したとき、 部分適用されたが得られる セクション 中置関数に対して…

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=…

すごいHaskell 第4章 再帰 メモ

Hello 再帰 この章では再帰関数について書いてある。 再帰とは関数定義の中で自分自身を呼び出す関数 関数を再帰的に定義するには問題の基底部(これ以上分解できない、 解を明示的に定義しなければならない場合)と、それ以外に分ける。 フィボナッチ数列の…

すごいHaskell 第3章 関数の構文 メモ

この章では関数のパターンマッチ、ガード、where、let式、case式 について書いてある。 パターンマッチ パターンマッチはパターンに従って、データを分解するために用いる。 関数の本体を下の例のように分解することもできる。 パターンは上から順に評価され…

すごいHaskell 第2章メモ

第2章 型を信じろ! 「すごいHaskell 楽しく学ぼう」 第2章を読みながらのメモです。 この章はHaskellにおける型や、型クラスについて書いてある。 型クラスについてはあまり理解していないが、今はサラッと流すことにする。 型の調べ方 GHCi上で型を調べ…

すごいHaskell メモ

すごいHaskell 第1章 Haskell の勉強会に参加予定(途中参加)なので、「すごいHaskell 楽しく学ぼう」 第1章を読みながらのメモです。 ghciの起動と終了 ghciの起動方法 $ ghci ghciの終了方法 Prelude> :quit ghciのヘルプ表示 Prelude> :? 関数 関数が2…

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

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

homebrewでHaskellをインストールする

ググったとおりにbrew install ghc haskell-platformとするとエラーになる。 タイプミスかと思ってもう一度実行するが、やはりエラー。エラー内容は Error: No available formula for haskell-platform We no longer package haskell-platform. Consider ins…

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上でやったほうが楽。 …

EmacsでOCaml

vi派だけど、OCamlを動かすならEmacsのほうが簡単そうだと思って環境構築してみた。Getting started with tuareg-mode in Emacsを参考にとりあえずmarmaladeをインストール。 書いてあるとおりに.emacsに (require 'package) (add-to-list 'package-archives…

OCamlメモ

OCamlソースファイルの実行 拡張子は.ml ファイルを読み込む場合は#useを使う # #use "file.ml";; コメントの書き方 (* ... *)の間の部分がコメントになる (* コメント *)

OCamlメモ

インタープリターの終了方法 $quit;; としてもError: Unbound value quitとなる。正しくは以下のように#をつける。 $#quit;; 日本語設定 MacのiTerm2を使用している場合、文字コードをEUCにしないと、日本語が文字化けする。OCaml用にプロファイルを作り(Oth…