あるUIViewがすでにaddSubViewされているか判定したい

あるUIViewがすでにsuperViewにaddSubViewされていた場合に、これ以上addSubViewしたくない時は以下の判定文を書けばおk.

NSDictionaryの中身をループで取得したい

使うときにはいつも忘れているのでメモ。

keyとvalueが欲しいとき

valueが欲しいとき

Objective-Cでfor文中に要素を変更しようとしたらエラー「Collection was mutated while being enumerated.」

列挙子を使ってアクセスしてる時に要素変更しないでねということ。
順番に処理してるのに、要素を削除したりしたら順番狂っちゃうから発生。

調べてみると、reverseObjectEnumeratorを使って逆順に列挙すればokみたい。

MacにRMagickをインストールしようとしたらCan’t find MagickWand.h

MacにRMagickをインストールしようとしたら詰まったのでメモ。
ほぼ同じ環境だと思っていた会社のMacにはすんなり入ったのに、自宅のMacでハマってしまった・・・

こんな感じでImageMagickとRMagicのインストールを実行

出たエラーはこちら

調べてみるとPKG_CONFIG_PATHが間違っているとの情報を見つけたので正しくパスを指定する。

それでもエラーがでる!
どこもかしこもこの対応方法しか書いていなくて、だいぶまいっていたところで新しい情報を発見。
Configuring ImageMagick, Rmagick, and Homebrew to play nicely together on OS X Mavericks

この記事の通りに以下を実行して無事インストールが完了しました。。。

SDWebImageを使用していたら、アーカイブだけエラー

SDWebImageを使用したiPhoneアプリで、シミュレータ・実機ともに正常に動作するのにアーカイブだけエラーが出るという現象に遭遇。

エラーはこんなの。

調べてみると、if defined(ARM_NEON)という記述をif defined(_ARM_ARCH_7)にしたらいいみたい。
SDWebImageの場合は該当箇所はdsp.hとcpu.cの2箇所。

こうなってるのを。。

こう修正。

UITableViewで余分な境界線を非表示にする。

UITableViewで2行だけデータを表示したいとき。
残りのcellには何もデータがないのに、境界線だけ表示されてしまってなんか気持ち悪い。
それを解決するのに一番簡単っぽい実装はこれ。

JSONModelで必須でない項目を設定する – Objective-C

例えば、APIの返り値が「id=1, name=foo, address=bar」だった場合で、受け取り側には「id, name, address, age」が設定されていた場合。

みたいなエラーが表示されます。
軽く調べたら、

こうすればokみたいな記事を見つけたけど上手くいかず。。。
結局解決するには以下のメソッドを実装。

NSDictionaryの配列からNSPredicateで検索するには。

NSDictionaryの配列からNSPredicateで検索するには。

ちなみに普通に文字列の配列だった場合は、以下のように書く。

配列の中身がDictionaryだった場合はこう書く。

UITableViewCellを最初から選択状態にする

viewDidAppear内に下記を記述。