クラスメソッドを@selectorで呼び出せないかな
— 進藤こだまさん (@kodam) 3月 22, 2012
というツイートを見かけたので、備忘で書いておきます。
“[Objecvice-C]クラスに対して任意のメソッドを実行する方法” の続きを読む
Zero4Racer PRO Developer's Blog
iOS, Mac 技術情報サイト
クラスメソッドを@selectorで呼び出せないかな
— 進藤こだまさん (@kodam) 3月 22, 2012
というツイートを見かけたので、備忘で書いておきます。
“[Objecvice-C]クラスに対して任意のメソッドを実行する方法” の続きを読む
Xcode4になってから、いまいちデバッグがうまくいかない理由に、止まってしまう場所が、
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
の行で止まってしまう場合が多いのがありますよね。この時に、どこで止まったのか分かるときはいいですが、いろいろな画面の中でどこで止まったか分からないときはデバッグ困りますよね。その対策法を見つけたので書いておきます。
“もう return UIApplicationMain で止まっても困らない! Xcodeでのデバッグ方法” の続きを読む
追記:2012/7/16 ソースの誤記を修正しました。
よくある間違いですが、備忘のために記しておきます。iOSアプリを、AppStore経由でアップデートした場合、フォルダのアドレスが変更されます。アプリケーションフォルダの基本パスが変わる訳です。しかし、データ(Documentフォルダの内容、Libraryフォルダの内容)はアップデートの際はコピーされます。それで、アップデート前に、ファイルパスをフルパスで保存していると、アップデートのあとに、ファイルを参照しようとするときに、ファイルが見つからなくなってしまいます。その対応法について記録しておきます。
今まで気付いていなかったのか、存在しなかったのか分かりませんが、これによって、テストが実機無くてもある程度出来るようになりますね。
More Simuratorというのがあったんですね。
と充実しているので、ここからインストール。まだインストール中なので実験していませんが、これで動くはずですよね。
昨日、作成の協力をしていたアプリが、リリースされました。
細川茂樹のアプリマガジン
カテゴリ: エンターテインメント
価格: 無料
こちらのアプリで、アプリ内購入が成功した際に、リリースビルドでのみエラー発生してクラッシュする問題が発生しました。クラッシュした後にアプリを再起動すると、購入処理は終了しており、その後は問題なく使用することが出来ます。対処した方法について記述します。
“[iOS]リリースビルドでのみクラッシュする状況への対処について” の続きを読む
CoreData を使って見ているのですが、なかなか便利ですね。特に、Updateの際に、NSManagedObjectのオブジェクトのデータを書き換えるだけで、データが反映されるのはいいです。ときどき、動作がおかしいと思うことがあったので、注意点を備忘として記載しておきます。
今回のプロジェクトでは、共用のmanagedObjectを作成して、それを、
に保存するようにしています。これをしないと、ローカルでは変更されているように見えても、次回アプリを起動した時に、データが保存されなくなってしまいます。
こんな感じです。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[self saveContext];
}
- (void)applicationWillTerminate:(UIApplication *)application
{
// Saves changes in the application's managed object context before the application terminates.
[self saveContext];
}
- (void)saveContext
{
NSError *error = nil;
NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
if (managedObjectContext != nil)
{
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error])
{
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
}
これで少し迷ったのですが、デバッグ中に、Xcodeのストップボタンを押した時には、上の、
- (void)applicationWillTerminate:(UIApplication *)application
- (void)applicationDidEnterBackground:(UIApplication *)application
が呼ばれないので、データが保存されません。その場合は、直前の変更が無かったことになってしまいます。
分かっていれば難しくないのですが、忘れていると、”保存されたデータが無くなった”を感じてしまうことがあったので、備忘で記録しておきます。
本日12/29から、無事にiTunesConnectサイトのホリデー休暇も終わったのですが、こーでぃんぐしていると、
Payment Transaction END Failed: … Error Domain=SKErrorDomain Code=0 "Cannot connect to iTunes Store"
というエラーが出て、アプリ内購入に接続出来ませんでした。まだホリデーで繋がらないのかなと思ったのですが、よくよく調べてみると,原因は、
provisioning プロファイルが、正しいものを使っていなかった。
という、至極単純な理由でした。正しいプロファイルを選択して、アプリを削除して,クリーンインストールすると問題なく正しく使用出来ました。
みんなで玉入れ!運動会
カテゴリ: ゲーム
価格: 無料
みんなで玉入れ!運動会 iPad アプリが、無事に1.0.1バージョンに更新されました。バグ修正、また、メニューにサウンドを追加しました。このアプリは、フレームワークにHome – Kobold2D™ – Kobold2D ,物理エンジンにBox2D | A 2D Physics Engine for Games を使用しています。
そして、レベルエディタとして、LevelHelper、スプライト作成ソフトとして、SpriteHelperを使用しました。これらのツールによって、多くの作業をグラフィカルに行うことが出来るので、プログラマーの作業を大幅に軽減することが出来ます。ちなみに、玉入れアプリは、基本の玉入れの動作はLevelHelper、SpriteHelperの勉強をかねて、5時間ほどで作ることが出来ました。
(そのあと、メニュー、デザイナとの共同作業、スコア表示、ゲームセンター、アプリ内購入などで、あと数日掛かっているんですが…)
LevelHelper
カテゴリ: 開発ツール
価格: ¥1,600
SpriteHelper
カテゴリ: 開発ツール
価格: ¥1,100
SpriteHelperには、お試し版の SpriteHelper FREEもありますが、機能制限があるので、実際にゲームを作るときは、通常版が必要かもしれません。
SpriteHelperFree
カテゴリ: 開発ツール
価格: 無料
それでは、SpriteHelperから始めましょう。
“サクッと Cocos2D ゲームを作ろう!(1)SpriteHelperでのテクスチャー処理” の続きを読む
iOS のXML 取得、解析処理には基本的ないくつかの処理があります。
XML の処理方式として、
イベント駆動で行うXML解析
インターフェース指向で、木構造として扱う方式
があり、iOSでは、
など、あるのですが、イベントを自分で記述したり、解析のためにオブジェクトをたどったりと、結構めんどうです。それを簡単にする方法があったのでご紹介します。
“iOSのXML解析をJSONみたいに簡単に出来る XML Reader が便利” の続きを読む
In Depth iOS & Cocos2D Performance Analysis with Test Project | Learn & Master Cocos2D Game Development
cocos2d の パフォーマンスに関する、Steffen Itterheim (gaminghorror) on Twitter 氏の渾身の記事がとても分かりやすいです。
cocos2d 本の作者、Kobold2D のメンテナーだけあって、Cocos2dのパフォーマンスへの掘り下げは半端ないです。
“cocos2d 開発者必見! learn-cocos2d.com の cocos2d パフォーマンステストが凄い!” の続きを読む