Objective-C
TestFlight SDK とか、クラッシュイベントを受け取って Stack Trace をレポートしてくれたりしますが、どうやるんだろう?と思い調べてみました。 クラッシュイベントを受け取って何かしたい場合は、 NSSetUncaughtExceptionHandler() にハンドラ関数のポイ…
Game Center の Leaderboard のスコアデータは、GKLeaderboard クラスを使用して直接とってくることができます。 アプリケーションでスコアデータを調べたり、独自の Leaderboard ビューを作成したい場合は、GameCenterから直接スコアデータをロードできます…
汎用ライブラリ等、ARCプロジェクトでも非ARCプロジェクトでも使用する可能性のあるクラスを実装する場合、 #if !__has_feature(objc_arc) - (void)dealloc { [super dealloc]; } #endif といった感じで "__has_feature(objc_arc)" を用いて判定を行いそれぞ…
単なる API Diffs ドキュメントの抜粋ですが、iOS 5.1 での iOS SDK API 変更点です。 AssetsLibrary ALAssetRepresentation.h Added -[ALAssetRepresentation dimensions] AudioToolbox AudioFormat.h Added kAudioFormatProperty_FormatIsEncrypted AudioU…
Xcode 4 で、 Edit Scheme → Debug を選択 → "Diagnostics" タブを選択 と進むと、下記のような設定項目が出てきます。 このうち、"Enable Zombie Objects" にはいつもチェックを入れるのですが、他のチェック項目はどういう効果があるんだろう?と思いつつ…
「iOSアプリにソーシャルサイトでのシェア機能を3行で簡単実装できる」という謳い文句で有名な ShareKit を初めて使ってみたのですが、ひっかかった部分や、ドキュメントに書いてなくてソースから汲み取った部分などあったので、諸々メモしておきます。 ソ…
クラス/オブジェクトが持つプロパティ情報を取得するには、Objective-C のランタイムにある、 objc_property_t *class_copyPropertyList(Class cls, unsigned int *outCount); を使用します。 また objc_property_t 型のプロパティ情報からプロパティ名を取…
ずっと見ようと思っていてなかなか見れてない WWDC の セッションビデオ。 とりあえず気になったものを列挙してみました。 数が多いのでまずは A〜I 編。 Advanced ScrollView Techniques Come learn about how to achieve the appearance of infinite scrol…
NSNotification, NSNotificationCenter を用いたオブジェクト間連携は使いやすいのでついつい多用してしまうのですが、具体的に内部でどのような処理が行われていて、パフォーマンス面での影響はどのくらいなんだろう、ということをイメージできずにいたので…
というタイトルで、はじめて Qiita に投稿してみました。 http://qiita.com/items/2269 (Twitter/Github/Hatena と同じ shu223 というIDです) ちなみにこんなコード。 + (void)startJump:(UIView *)view startPos:(CGPoint)startPos targetPos:(CGPoint)ta…
アプリを申請した数時間後に、AdMob SDK がアップデートされていたことを知り、(申請を取り下げてまで最新にする必要があるかどうか判断するために)更新内容について調べてみました。 こちらがリリースノート。 http://code.google.com/intl/ja/mobile/ads…
In-App Purchase がらみでリジェクトをいただいてしまい、修正バイナリをアップロードしたのですが、iTunes Connect の In-App Purchase 設定画面の Status のところが "Developer Action Needed" のままでした。 で、そのStatusを変更するボタンのような便…
Xcode でビルド(Archive)した ipa のサイズと、AppStore に並ぶ最終的なアプリのサイズは微妙に違います。しかもちょっとサイズが増える方向にいくので、20MBギリギリで作っている場合に非常に困ります。 たとえば以前出したKOF ENCOUNTERという位置ゲーア…
最近購入した下記のiOS5本、iCloud や ARC や Storyborad はもちろんのこと、「こんなのもあったのか」というような細かいネタもいろいろと載っていて、大変勉強になります。 詳解iOS5プログラミング沼田 哲史 秀和システム 売り上げランキング: 303,701Amaz…
昨年末にiOS Advent Calender 2011というイベントがあったらしく、遅ればせながらチェックしてみたところいろいろと知らなかったこと、勉強になったことがあったので、以下にメモしておきます。 CocoaPods に対応していないライブラリを集めた自分用リポジト…
たとえば下記のようなコードでプロダクト情報取得処理を行った場合に、 self.request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:productId]]; self.request.delegate = self; [self.request start]; プロダクト情報の…
iOSプログラミングに関してだいぶ網羅的に書かれていて、600ページ近くもある分厚い本。 iOSプログラミング 第2版アーロン・ヒレガス ジョー・コンウェイ Aaron Hillegass Joe Conway ピアソン桐原 売り上げランキング: 222,713Amazon.co.jp で詳細を見る …
課金機能つけたアプリ(※個人制作)で、課金数がずーっと0だったので、 「売れないもんなんだなー」 とのんきに構えてたら、なんと Itunes Connect でプロダクトのステータスが "Ready to Submit" になってることに気づいてしまいました。 次のように対処し…
プロジェクト全体でARCを有効にした状態で、一部ファイルを無効にしたい場合は、 1. プロジェクト設定画面のBuild Phasesタブを開く 2. ARCを無効にしたいファイルをまとめて選択 3. リターンキーを押すとダイアログボックスが出てくるので、"-fno-objc-arc"…
https://github.com/FLCLjp/iPhone-libmecab こちらに上げられている mecab を用いて形態素解析を行うサンプルアプリで、どういう結果がでるのか試してみました。 入力文1:ゴルフに行ってきた 入力文2:ゴルフ行ってきた うーん、微妙だ。。 キーワード抽出的…
What is "Stats" "Stats" is a class to display set of parameters that indicate the load status such as memory usage, the number of UIView subclasses to create a directly below in real time. When you run the included sample project will appe…
iOS5から使えるようになった CIFilter の効果を一通り試せるサンプルプロジェクトをgithubに上げました。 こんな感じでフィルターを試せます。 (フィルタのパラメータはランダムに生成されるので、かける度に変わる場合もあります) プロジェクト一式、こち…
たとえば、CIFilterを使っていて、下記のようにinputImageに値(画像)を渡そうとしていて、 [filter setValue:_filteredImage forKey:@"inputImage"]; この filter が inputImage というプロパティを持たないものだったとき(たとえば CICheckerboardGenera…
ゲームアプリ開発時等、動作確認用にリセット(初期化)ボタンをつけたくなる場合があり、NSUserDefaults の内容を一括消去する方法について調べてみました。 以下のコードでいけました。 NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier]; …
NSUserDefaults の、 - (NSDictionary *) dictionaryRepresentation というメソッドを使用すると、保存されている全キーの内容を取得することができます。 NSDictionary * dic = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]; NSLog(@…
Appleのドキュメントを見ながら、CLLocationManager の Boolean を返す系のメソッドがそれぞれどういうことを意味しているのか調べてみました。 ただこの調査、iOS5リリース以前(2011年7月)に行ったものなので、情報が古いところがあるかもしれません。 lo…
プッシュ通知を実装するときに、「バックグラウンドで通知受けたときはapplication:didFinishLaunchingWithOptions:とapplication:didReceiveRemoteNotification:、どっちが呼ばれるんだっけ?」とかなんだかいつも自信なくなってきてドキュメントを見返した…
アップルの『 iOSアプリケーションプログラミングガイド(英語版)』に、『パフォーマンスと応答性のチューニング』という章があって、これが今読むとかなり参考になったので、引用します。 個人的には、「リソースをあらかじめロードしておくと高速化になり…
同僚のFacebook投稿で知ったのですが、各種言語の.gitignoreテンプレートを集めたリポジトリがあります。 https://github.com/github/gitignore ちなみにObjective-Cのテンプレートの中身はこんな感じでした。 https://github.com/github/gitignore/blob/mas…
たとえば、 y軸について110度回転 z軸について30度回転 CATransform3D transformY = CATransform3DRotate(transform3D, DEGREES_TO_RADIANS(110.0), 0, 1, 0); CATransform3D transformZ = CATransform3DRotate(transform3D, DEGREES_TO_RADIANS(30.0), 0, 0…