BAD_ACCESS

おもにiOS、ときどき変な電子工作、ガジェット話。

Objective-C

CCSpriteFrameCacheでキャッシュしたフレームでCCSpriteのテクスチャを差し替える

cocos2dで作る iPhone&iPadゲームプログラミング作者: Steffen Itterheim,畑圭輔,坂本一樹,加藤寛人,高丘知央,株式会社クイープ出版社/メーカー: インプレスジャパン発売日: 2011/06/24メディア: 単行本(ソフトカバー)購入: 9人 クリック: 601回この商品…

StoryBoardの開発手順(公式)日本語ドキュメントがアップされたみたい

英語が読める人にとっては今更感があるかもしれませんがStoryBoardの開発手順の公式ドキュメントがアップされました。 日本語で記載されている資料としてはまだ珍しいのでそろそろ本格的にStoryBoardを使って開発される方は必読です。以下、公式のドキュメン…

ビュー関連のデバッグに便利そうな手法

わたくし先週はビューの回転にすっかりハマってしまいまして。。。 自戒の意味も込めて、ビュー関連のデバッグに便利そうな手法をしらべましたのでまとめてみました。 recursiveDescriptionメソッド ビューの階層構造やframeの値を一気に取得するためのメソ…

動画の圧縮についてスタディしてみた

AVAssetExportSessionの設定でどれぐらいの圧縮ができるかをスタディしてみた。 iPhone4で動画を撮影した(15秒、1分、3分)ものをベースに実施。 ※このあたりは機種によって変わるそうなので参考まで。 動画の時間 15Sec 1min 3min Original(byte) 22,302,0…

AVAssetExportSessionで動画の圧縮

カメラロールに保存された動画をアップロードする際にある程度データを圧縮する必要があると思いAVAssetExportSessionを使った方法を試してみるメモ。 AVAssetExportSessionについて 公式のドキュメントによると、 エクスポートセッションは、アセットの非同…

iOS5のTwitterフレームワーク(っぽい)画面をiOS4.xでも実装できる神ライブラリがあった!

Githubはこちらからdoubleencore/DETweetComposeViewController · GitHub 画面だけじゃなく実装上もTWTweetComposerViewControllerと同じような書き方ができるのも本当に便利! 興奮気味に実装の手順をメモ。 1.自分のプロジェクトにDETweetComposeViewContr…

URLスキームによるアプリの起動とAppDelegate内の処理について

バグを直していて改めて確認することがあったのでメモ。 iOSのバージョンによって違いがあるかもしれないが、後ほど調べてみる。 調査ケース (1) アプリがバックグラウンドで生きている状態。 (2) アプリがバックグラウンドで完全に死んでいる状態。 調査す…

ALAssetGroupの「addAsset」が返す値が時々NOになって困る。

需要ないと思うけど…写真をフォトライブラリにひとまとめにして保管(ー>アルバムとして保管)する際にカメラロール側に余分に保管されてしまう現象について。 あるアプリでダウンロードしてきた写真をアルバム単位で保管する機能がある。保管する際にアル…

UIButtonの中の文字をどうにかする方法。

UIButtonのインデントまわりLoading 意外とはまり所だったのでメモ。 UIButtonのtitleをインデントする方法 Configuring Edge Insets タイトルのインデント button.titleEdgeInsets = UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat …

ASIHTTPRequestで非同期処理をBlock使って実行。

この記事を参考に。ASIHTTPRequest example code - All-Seeing Interactive Blockをあまり理解していない中で これまでの処理との違い。 Block使わない - (IBAction)grabURLInBackground:(id)sender { NSURL *url = [NSURL URLWithString:@"http://allseeing…

NSNotificationCenter(通知センター)への登録。

これまで異なるクラス間でメソッドを呼び出す際にはdelegateで取り回しをしていたけど、NSNotification(通知センター)を使ったほうが可読性が高まってあとでメンテナンスしやすいというアドバイスをいただいた。全てのケースに当てはまるわけじゃないけど…

AVCaptureSessionを使ってカメラアプリをつくるときのUI関連処理

カメラアプリ実装での悩み。開発継続中。 iOS4から利用可能となっているAVCaptureSessionを使うことでカメラアプリの自由度が格段に上がる! ということでドキュメント精読。キャプチャセッション自体の処理はGCDを使ってメインスレッド以外で行われる。 (…

Newsstandアプリを開発する(1)

Newsstandアプリのモックにとりかかる。Newsstandのアプリ開発情報がとにかく少ないのでまずは公式のリファレンスとWWDC2011の動画、英語の記事を参考にするしかない。 しばらく開発メモがてら更新していく。まずNewsstandアプリをつくるために何が必要か? …

StoryBoardを使うけどSeguesは使わない場合の画面遷移の方法

需要があるかどうか… StoryBoardを使った画面遷移の設計・開発は直感的にできて非常に有用。 ただし、ちょっと標準のやり方と離れていくと、途端に使い方を迷ってしまうことも否めない。 今回はStoryBoardを使って開発を進めつつもSeguesを使わない場合の画…

いまさら聞けないUIView(1)「frameとboundsの違い」

カメラアプリの開発に取り掛かっていて、どうもUIViewについて理解が浅い気がしてきた。 いまさらと言われても、思った時にやるのが一番!ということでUIViewについてのメモ。 UIViewクラス概要 お決まりの公式ドキュメント。 相変わらず充実の内容です。色…

StoryBoardでGesture Recognizerを追加する。

引き続きiOS5関連について。 StoryBoardを使った開発は画面の少ないシンプルなアプリや画面遷移のイメージをプロトタイプとして確認するにはうってつけの開発方法だと思う。 今回はStoryBoardを使った画面作成でGesture Recognizerを追加しようとしたときの…

テーブルビューで複数のセルを同時選択が可能に!

最近開発したアプリで自前でテーブルビューのチェックボックスコントローラをこしらえたのだが… ついに標準でも複数セルの同時選択ができるようになった様子! Loading - (void)viewDidLoad { [super viewDidLoad]; self.dataArray = [NSMutableArray arrayW…

静的テーブルビューなら設定画面の開発がすこぶる快適に!

アプリを開発していて結構手間になるのが設定画面の開発。 見た目はすごくシンプルだけどグループテーブルビューの独特の記述で面倒くさい。iOS5からは静的なテーブルビューが用意され、作成の際にデータソースが不要になっています。 TableViewの「Content…

「iOS5」で追加された新機能。ざっと読み。

巷ではiPad3だのiOS5.1だのと騒がれておりますが、iOS5で一体何ができるようになったのか、ざっと読みしてみたいと思います。以下の本に書いてあることを斜め読みしております。 詳解iOS5プログラミング作者: 沼田哲史出版社/メーカー: 秀和システム発売日: …

Twitter APIへのアクセスで401エラーが出る。

今更こんなところでハマるかよ・・・という内容ですが、ありそうな気もするのでメモ。 Twitterへ投稿する際にAPIエラーが出る。 「Could not authenticate you.」つまり認証することができませんでした。となっている。 不思議なのは、投稿する前に行ったOAu…

2012年、使えるかもしれない技術たち。

週末にこれまで気になっていた技術をひととおり調査してみた。まだコードをガリガリ書いている状態ではないけど早く試してみたい! バーコード認識 巷では廃れた感があるが、自分としてはまだまだ未知の分野。画像・動画認識の基礎にもなるところなので、定…

StoreKit(In-App Purchase)に関する神記事を発見した。

以前も課金(In-App Purchase)に関してはWeb上でもなかなか情報が得にくいというメモを書いたが、iOSの課金に関する神ブログを発見した! StoreKitと闘う | なんてこったいブログドキュメントを読み込んでも完全に把握できない部分のノウハウが詰まっている…

Semantic Issue '&&' within '||' がウザい。

iOS5で以前のバージョンのアプリをビルドしようとするとインポートしている一部のライブラリで「 Semantic Issue '&&' within '||' 」とワーニングがわんさか出る。 結構な数で出てくるのでなんとかしようとしたときのメモ。 Xcode上には「Place parentheses…

EXC_BAD_ACCESSが出てもうろたえないために

開発しているとどうしてもぶち当たる壁がデバッグ。その中でもEXC_BAD_ACCESSが出るとお手上げ状態。 EXC_BAD_ACCESSは解放済みのオブジェクトに対してアクセスしようとすると発生するエラー。 余分に解放してしまったのはどのオブジェクトなのかを探し当て…

右から左へpushView(CATransition)

みなさまご存知の通り、iPhoneでは通常左から右にビューが遷移していきます。 奇特なことに右から左にビューをプッシュしたいという方がおられたので、その時の情報をまとめます。 画面遷移についてはこのブログエントリに丁寧に解説されておりましたので参…

KVO(Key-Value Observing)とは何か(1)

KVOに関する日本語の記事が意外と少なかったので勉強を兼ねてメモ。 ※KVO公式ドキュメントの日本語訳はこちら KVOのより良い理解のためにKVCについても触れておくことをオススメします。 KVC(Key-Value Coding)とは何か(1) - BAD_ACCESS KVC(Key-Value Codin…

いまさら聞けないStack Overflowの仕組みと活用法

今年1年の目標として、プログラムに関する自分の裾野を広げるためのいくつか試している。 このブログもその内の一つで、少なくとも1月中は毎日更新を目標としている。(まだネタにはこだわらない) もう一つはStack Overflowをうまく使って英語のアウトプ…

KVC(Key-Value Coding)とは何か(2):KeyPath

前回のメモKVC(Key-Value Coding)とは何か(1) - BAD_ACCESS 「KVC」でも重要な要素であるKeyPathについてメモ。 参考書籍は前回に引き続き「詳解Objective-C 2.0」詳解 Objective-C 2.0 第3版 <KeyPath(キーパス)とは何か> Pesonクラスのオブジェクトを…

KVC(Key-Value Coding)とは何か(1)

「KVC」とは何かをしっかり理解しておきたいのでメモ。 参考書籍は「詳解Objective-C 2.0」詳解 Objective-C 2.0 第3版 (もう第3版が出てる!) <KVC> こちらが特に何も加えなくても、オブジェクトのプロパティに対して「キー」と呼ばれる文字列でアクセ…

JSONで取得したデータのソートがうまくいかない場合の対応

idとcontentsの2つのキーを持ったオブジェクトmessages(NSArray)を JSONで受け取り、idの値でソートしたい場合。 - (NSArray *)sortByRecentMessages:(NSArray*)messages { NSSortDescriptor *sortByRecent = [NSSortDescriptor sortDescriptorWithKey:@"…