ぴよログ

↓に移転したのでこっちは更新されません、多分。

Xcode

Xcodeでメインのターゲット名を変更するとのUnitテストが起動しないよ

iOSアプリのユニットテストを実行しようとしたらエラーが起きて起動しないということがありました。 It is likely that dyld cannot locate a framework framework or library that the the test bundle was linked against, possibly because the framework…

Xcodeで改行したつもりが改行じゃないらしくて警告が出てしまう

Xcodeでコードを書いていて普通に改行したつもりが、なぜかこんな警告が出ていることがあります。 Treating Unicode character as whitespace 僕がこれを出すときは決まって無意識のうちにコントロールキーを押したままReturnキーを押して改行しようとしてい…

XcodeインスペクタのState Config

UIButtonってタップ中の状態に色とか背景とか画像とか変えられますよね。てっきりコードでしか出来ないと思っていたらそんなことありませんでした。恥ずかしい。 このState Configを変えてから設定を変えると、そのStateに対して値が用いられるみたいですね…

画像付きUIButtonのレイアウト調整

UIButtonに画像をつけるとデフォルトでは画像の右側にテキストが回りこむような形でレイアウトされますが、このレイアウトはカスタマイズ可能です。 画像とテキストはそれぞれ独立して動かすことができますので、次のようなレイアウトを作ることも可能です。…

ARCを使ったiOS開発でのプロパティ名

こんな謎のビルドエラーに遭遇しました。 property's synthesized getter follows Cocoa naming convention for returning 'owned' objects どうやらnewから始まるプロパティ名は使用できないようです。エラーメッセージがわかりにくいので調べないとわかり…

CocoaPods使用プロジェクトで新しいConfigurationを作ったときの注意

テストコード実行時のみ通るコードを書くためにTesting用のConfigurationを作成してビルドしたら次のようなリンクエラーがでました library not found for -lPods CocoaPodsを使っているプロジェクトだったのですが、CocoaPods周りの設定が新しいConfigurati…

Xcodeでテストのときのみ特定のコードを実行する方法

テストコードのときのみ実行したいコードってありますよね?例えばサーバーのURLを変えたり、テスト用のデータを用意したりいろいろな用途があり得そうです。 シンプルにやるにはプリプロセッサマクロを使ってこんな風にやるのがよさそうです。 - (void)meth…

忘れがちなXcodeの環境変数はコマンドで一覧できる

XcodeでHeader Search PathやLibrary Search Pathを設定するときには環境変数を使ってマシンや人ごとの差を吸収すべきなんですが、環境変数名が覚えにくいので何度も調べる羽目になります。 そんなとき便利なので、xcodebuildコマンドを使って環境変数一覧を…

XCode5対応!KIFでiPhoneアプリの受け入れ(統合)テスト

最近初めてiPhoneアプリでテストを書く機会がありました。テストを書くならこの際ユニットテストだけではなく画面遷移を含めたテストも書いてみようと思い、環境を整えてみました。 テストフレームワークの選択肢 kif-framework/KIF inkling/Subliminal Test…

(追記有り)XCodeのファイルに挿入されるコメントが邪魔。変えたい。

(追記)この方法では全てのコメントを編集できるわけではないようです。わかったらまた書きます。 XCodeで新しくプロジェクトを作ったりファイルを追加したりするとファイルの上部にこんなコメントが挿入されますよね。 // // AppDelegate.m // AppName // //…

Xcode5でcommand line toolsをダウンロードする

今まではPreferences→Downloads→Componentsから行っていたcommand line toolsのインストールですが、Xcode5から(もしくはMavericksから?)はその場所に見当たらなくなっていました。 代わりにターミナルでxcode-selectというコマンドを叩くとインストール…