日々精進

新しく学んだことを書き留めていきます

2014-03-01から1ヶ月間の記事一覧

AppCodeのsmart checkoutが便利だ

普通チェックアウト時はワーキングコピーがクリーンでないとエラーになるけど、 smart checkoutはクリーンで無くても実行可能。 以下の手順を自動的にやってくれる。 ・Stash ・指定ブランチをcheck out ・Stashをpop ファイルを修正中でもブランチを切り替…

キーチェーンに登録されている証明書のID一覧を表示する

mac

以下のコマンドで表示出来る。 security find-identity -p codesigning -v

xargsからmvなどに引数を渡す

mac

find . -name “*.php” | xargs -J% cp -f % ~/workspace/phpfiles J%オプションを付けると、%がパイプからの入力に置換される。 Linux系やBSD系のOSでは微妙に書き方が違うっぽいので注意。 参考:macでfind-xargsからのcpやmvに引数を渡す

pod lib createでプロジェクトひな形作成

iOS

pod lib createでPodライブラリ用プロジェクトのひな形が出来るらしい。知らなかった。参考:Objective-C - iOS向けのライブラリをCocoaPodsで配布する - Qiita

iOS5でXIBを読み込むと「CRASH: The NIB data is invalid. 」エラー

iOS

iOS5でアプリを起動し、XIBを読み込んだところで「CRASH: The NIB data is invalid. 」 というエラーが出た。 iOS6,7では問題なし。 原因はXIBファイルがおかしかったことっぽい。 XCode4で作ったXIBをXCode5形式に変換した時に壊れたんだろうか。 でも、iOS…

NSNumberFormatterのnilSymbolがnilの時に出力されない

iOS

NSNumberFormatterのstringFromNumberを使うと、渡したnumberがnilでもnilSymbolが返されない。 nilSymbolを返すようにするためにはstringForObjectValueを使う。 なんでこういう仕様にしたんだろう。。stringFromNumberでもnilSymbol返していいと思うが。 …

UILabelのサブクラスを複数作って困ったこと

iOS

文字列のフォーマットや文字色の変更ロジック(0以下なら赤字、0以上なら黒字にするとか)をUILabelのサブクラスを作って、各サブクラスでやっていた。 具体的には、以下のサブクラスを作った。 ・ChangePercentLabel ・ChangePriceLabel それぞれ変化率、変…

カスタムViewクラスのインスタンスが生成されない

iOS

UIViewを継承してカスタムViewクラスを作成し、そのViewクラスのインスタンスをXIBから生成したが、 なぜかUIViewのオブジェクトになってしまうことがあった。 カスタムViewクラスのinitWithCoderも実行されない。 なぜ・・・と思っていたら、Targetにカスタ…

AppCode 3.0 Marocchino EAPでReveal.appとの連携機能が追加

といっても、デバッグウィンドウの左側にRevealを起動するボタンが付くだけっぽいが。。 参考:Reveal your app with new AppCode 3.0 Marocchino EAP | JetBrains AppCode Blog 自分はSparkInspectorユーザなのでこちらも対応して欲しい。。

NSNumberとプリミティブ型の使い分け基準

ちょっと曖昧にしていたところがあったのでNSNumberとプリミティブ型の使い分け基準を確認した。 NSNumber ・メリット ・フォーマットしやすい(NSNumberFormatterが使える) ・オブジェクトしか渡せないところでつかえる(Arrayにaddする時とか) ・デメリッ…

Git でマージ済みのブランチを一括削除するコマンド

git

コレ便利だなあ。使わせて貰います。 git branch --merged | grep -v '*' | xargs -I % git branch -d %参考:Git でマージ済みのブランチを一括削除する - Qiita

AppCode3.0EAPリリース

AppCode 3.0 EAP opens with an integrated UI Designer and improved Project Settings | JetBrains AppCode Blog を読んで使えそうな機能をピックアップした。 ・UIデザイナの統合 ・AppCode2.0系でUIデザイナプラグインをインストールしていたら削除する…

ParallelsのVMが固まる その2

2014-03-15 - 日々精進 でParallelsのVMが固まる原因はウィルススキャンソフトだと書いたけど、違った。。現象再発しました。 下記にスリープすると固まるという報告があったのでスリープを切ると固まらなくなった。 Parallels Desktop for MacでCPU(prl_vm…

カテゴリ名にはPrefixを付けるべき

iOS

クラス名に付けるPrefix(NSとか)をカテゴリに付けていなかったので、 ヘッダファイル名がcocoapodでインストールしたライブラリとアプリでぶつかってしまい、不具合が発生した。 具体的には、 UIView+Geometory.h というヘッダファイルが複数できてしまった…

iOSアプリ用アイコンをリサイズしてくれるWebサービス

iOS

以下のWebサービスを使うと、画像をリサイズしてiOSアプリアイコンに必要なサイズの画像をすべて生成してくれる。便利。 Makeappicon - Generate app icons of all sizes with a click!

pod updateで「[!] Pod::Executable pull --no-rebase --no-commit」エラー

iOS

pod updateを実行したらこんなエラーが出た。 [!] Pod::Executable pull --no-rebase --no-commit You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you can merge.以下を実行したら直った。(privateはprivateな…

ParallelsのVMが固まる

ParallelsでゲストOSとしてMavericksを動かしていると、 結構頻繁にVMが固まることがあった。固まるともうシャットダウンするしかない。 原因はゲストOSにインストールしたウィルススキャンソフトっぽい。 Symantecを使っているんだけど、SymDaemonというウ…

XCodeでビルド出来るのにxcodebuildでビルドすると「ld: library not found for -lPods」エラーが出る

iOS

原因はxcodebuildのCONFIGURATION_BUILD_DIRに相対パスを指定していることだった。 相対パスにしていると、各プロジェクト毎に.xcodeprojからの相対パスでビルド成果物を保存するフォルダを作ってしまうので、 Podsプロジェクトのビルド成果物が同じフォルダ…

アプリアイコンでアプリのバージョンが分かるようにする

iOS

テストの際に、間違ったバージョンのアプリを使ってテストしてしまっていたということが度々あったので icon versioningを使って解決することにした。 手順は以下。 ・ImageMagick installer for Mac OS XからimagemagickとGhostScriptをダウンロード・イン…

InterfaceBuilderのTips

iOS

下記記事参照。へーと思うものが結構あった。 The Code Sheriff: 8 Tips for working effectively with Interface Builder

AppCodeのメモリ割当量を変更する方法

下記記事はPhpstormについて書いてあるけど、AppCodeでも同じようにできる。 これで快適にコーディング出来るようになるかも? PhpStormのメモリ使用量を増やして高速化 | karakaram-blog ただし、メモリ量を増やすとGCに時間がかかるようになるというデメリ…

pod updateしたら「[!] `` attempted to initialize an object with an unknown UUID. `F72FEE6D18D0296400332430` for attribute: `files`. This can be the result of a merge and the unknown UUID is being discarded.」のような警告が出る

iOS

原因は、マージに失敗するなどして謎のUUIDがproject.pbxprojに残ってしまっていること。 project.pbxprojの中をunknown UUIDで検索すると、以下のような行が見つかる。 // 普通はこんな感じで、UUIDに対応するファイル名が書いてある。 FCD71ECBE65FA52C3CE…

protectedなプロパティにアクセスすると「unrecognized selector sent to instance」になる

iOS

以下のように、Protected.hで宣言しているプロパティがある場合、 // AbstractViewController_Protected.h @property (nonatomic) NSObject *obj; このクラスのサブクラスのインスタンスからこのプロパティにアクセスするとエラーになる。 // ConcreteViewCo…

効率的にObjectiveーCのコードのDiffを見る方法

iOS

以下の方法でやるのが一番見やすい。 ・AppCodeのChangesタブをFloatingにする ・Preview DiffをONにする メリットは以下。 ・シンタックスハイライトされてる ・Side by sideで変更箇所見られる ・ファイルの切り替えが↑↓キー押すだけ やっぱりDiffは左右に…

AppCodeのChangesのファイルがすぐ消える不具合

iOS

なぜか以下の現象が発生し困っていた。 ・ファイルを編集した直後はChangesタブの中に編集したファイルが表示される ・ビルドしたり、Changesをリフレッシュしたりすると消える ・エディタ内の編集した行であることを表示するマーク(行番号などを表示してい…

NSNumberFormatterでエクセルっぽい書式設定ができる

iOS

エクセルでよくやるみたいな書式設定が使えるとは知らなかった。 これ便利だなぁ。 [formatter setFormat:@"¤#,##0.00"]; 参考:cocoa - Change NSNumberFormatter's negative format from (xxx.xx) to -xxx.xx - Stack Overflow

NSNumberFormatterでパーセントを付けると値が100倍されるのを防ぐ

iOS

Multiplierを設定すると防げる。 [numberFormatter setMultiplier:@1]; 参考:iphone - Formatting number as percentage - Stack Overflow

potatotips#5発表資料

iOS

potatotips#5で発表してきます。 発表資料は以下になります。 http://hosokawa0825.github.io/slides/GetRidOfDelegateChainByResponderChain/#/

iOSスタートアップ勉強会#2発表資料

iOS

iOSスタートアップ勉強会#2で発表してきます。 発表資料は以下になります。 http://hosokawa0825.github.io/slides/HowToUsePrivateCocoaPodLiraries

マクロで動的にシンボルを定義する

Token-Pasting Operator (##)を使うとシンボルを動的に定義出来る。 ここでの動的に、というのは実行時に、という意味では無く文字列を結合してシンボルをつくることができるという意味。 Stringizing Operator (#)を使うとシンボルを文字列に変換できる。 #…