![]() パステル オービット |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
---|
ユーザーデータの保存等についてメモ
|
○プログラム終了時に実行したいという事が良くあります。 よくあるのはアプリケーションで使用した内容をセーブしたいなんて時に使います。 そんなときは次のコードをviewDidLoadメソッドに(最初に実行されるメソッド近辺) NSNotificationCenter *center; center = [NSNotificationCenter defaultCenter]; [center addObserver:self selector:@selector(applicationWillTerminate:) name:UIApplicationWillTerminateNotification object:nil]; を追加し、 - (void)applicationWillTerminate:(NSNotification *)notification { [self saveData]; } ○NSData unsigned char aBuffer[100]; NSString *str = @"This is a pen."; NSData *dat1 = [NSData dataWithBytes:[str cString] length:[str cStringLength]]; NSData *dat2 = [NSData alloc]; [dat1 getBytes:aBuffer]; [dat2 initWithBytes:aBuffer length:100]; +bytes メソッドで、バイナリデータの先頭の void * が得られます。 void *bytes = [data bytes]; ○NSDataの保存、ロード http://www.saturn.dti.ne.jp/~npaka/iphone/FileEx/index.html +ファイル→データ - (NSData*)file2data:(NSString*)fileName { NSArray* path=NSSearchPathForDirectoriesInDomains( NSDocumentDirectory,NSUserDomainMask,YES); NSString* dir=[path objectAtIndex:0]; NSString* file=[dir stringByAppendingPathComponent:fileName]; return [[[NSData alloc] initWithContentsOfFile:file] autorelease]; } +データ→ファイル - (BOOL)data2file:(NSString*)fileName data:(NSData*)data { NSArray* path=NSSearchPathForDirectoriesInDomains( NSDocumentDirectory,NSUserDomainMask,YES); NSString* dir=[path objectAtIndex:0]; if (!dir) return NO; NSString* file=[dir stringByAppendingPathComponent:fileName]; return ([data writeToFile:file atomically:YES]); } -その他のファイル操作 //ファイルが存在するか - (BOOL)existsFile:(NSString*)path { NSArray* paths=NSSearchPathForDirectoriesInDomains( NSDocumentDirectory,NSUserDomainMask,YES); NSString* dir=[paths objectAtIndex:0]; path=[dir stringByAppendingPathComponent:path]; return [[NSFileManager defaultManager] fileExistsAtPath:path]; } //ディレクトリの生成 - (void)makeDir:(NSString*)path { if ([self existsFile:path]) return; NSArray* paths=NSSearchPathForDirectoriesInDomains( NSDocumentDirectory,NSUserDomainMask,YES); NSString* dir=[paths objectAtIndex:0]; path=[dir stringByAppendingPathComponent:path]; [[NSFileManager defaultManager] createDirectoryAtPath:path attributes:nil]; } //ファイルの削除 - (void)removeFile:(NSString*)path { if (![self existsFile:path]) return; NSArray* paths=NSSearchPathForDirectoriesInDomains( NSDocumentDirectory,NSUserDomainMask,YES); NSString* dir=[paths objectAtIndex:0]; path=[dir stringByAppendingPathComponent:path]; [[NSFileManager defaultManager] removeItemAtPath:path error:nil]; }
![]() シリーズ記事まとめ ■Aニュース、ガジェット通信 寄稿記事 「『連載.jp』寄稿「ゲームプログラマが語る「プロ棋士に勝ったAIは、タクシー基本無料化をもたらす?」」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る ”買わない理由”がもたらす充足感と、開発者達の心理」」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る アップデート版に潜む開発者モラルハザード」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る ソフトやアプリと携帯ゲーム課金における経済行動学」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る。新しいゲーム機が定期的に生まれる理由」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る 楽しさの仕組み ゲームメカニクス」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る 3Dテレビとゲームの微妙な関係 その打開策」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る 無料アプリのビジネスモデルと舞台裏」」 「『Aニュース/ガジェット通信』寄稿「新発表ラッシュに見るクラウド大航海時代の幕開け」」 ■ゲーム制作初心者さん向け系 ゲームプログラマが語る。なんちゃってリードプログラマにはなるな!ゲーム造りで放棄してはいけない大切な事 ゲームプログラマが語る。今さら聞けないフレームレートに纏わる話。秒間60?16ミリ? ゲームプログラマが語る。「浮動小数点」と商業レベルで上手に付き合う方法 「ゲームプログラマが語る。ゲーム制作初心者の方へ小ネタ「クォータービュー入門」」 「ゲームプログラマが語る。「正しい乱数」が彩る確率世界とエンターテイメント」 「iPhoneアプリ、ゲーム制作初心者の方へ小ネタ「線分と円の交差」」 「iPhoneアプリ作者より、ゲーム制作初心者の方へ小ネタ「2Dベクトル」」 「iPhoneアプリ作者より、ゲーム制作初心者の方へ小ネタを一つ」 ■「プロのゲームプログラマとして、ゲーム製作に関する書評を」シリーズ ゲームプログラマが語る書評:「MMORPGゲームサーバープログラミング」を読んでみた ゲームプログラマが語る書評:「ゲームプログラマになる前に覚えておきたい技術」を読んでみた ゲームプログラマが語る書評:「ゲームエンジン・アーキテクチャ」を読んでみた ■個人でも出来る、マルチプラットフォーム開発関連 「ゲームプログラマが語る。iOSゲームをWinマルチプラットフォーム開発・その4」 「ゲームプログラマが語る。iOSゲームをWinマルチプラットフォーム開発・その3」 「iPhoneアプリ作者が語る。マルチプラットフォーム化その2・アトミック型定義のススメ」 「ゲームプログラマが語る。iOSゲームをWinマルチプラットフォーム開発・その1」 ■リリースしました系 「PASTEL-ORBIT/TeamDyquemアプリ第19弾。ローグライク決定版「隣人は魔王」をリリースしました。」 「TeamDyquemアプリ第18段。ご当地バトルRTS「埼玉クエスト」をリリースしました。近隣の県を滅ぼそう(*-_-*) 埼玉以外でも遊べます #47app」 「アプリ新作「ネコりす マカロン」をリリースしました」 「埼玉県ご当地アプリ、「タッチ the さいたま」をリリースしました #47app」 「アプリ新作「ひよこガーデン」をリリースしました」 「TeamDyquem新作。結構真面目なアクションパズル「ネコりす」リリース」 「iPhoneアプリ作者が、iアプリ「泡リス女子部 for iアプリ」をリリースしました」 「自作iPhoneアプリ改良版、「ネコがゴミのようだネ:アーケード」をリリースしました」 「iPhoneアプリ作者が、「まりも育成」for iモードをリリースしました」 「iPhoneアプリ新作 「ナタ・デ・ネコ」 をリリースしました」 「秋刀魚は関係ないけれど、新作「i-Wishbone」リリース」 「アプリ新作「ネコがゴミのようだ」。プロモ動画をアップしてみた」 「「泡リス 女子部」、販売開始」 「AppBankにまりも紹介記事が!」 「ゲームプログラマとして参加。ご当地47都道府県アプリプロジェクト #47app」 □ビジネス系 「ゲームプログラマが語るドコモiPhoneと、インフラから合法的に大金を抜くスキーム」 「ゲームプログラマが語る。秀丸エディタのビジネスモデル」 ■SFネタ系 「ゲームプログラマがSFを語る。意識はどこからやってきて、死んで、そして何処へ行く?」 「ゲームプログラマが語る。気の遠くなるスキもない程の、宇宙の話」 「iPhoneアプリ作者が語る。流れ星に馳せる真実」 「iPhoneアプリ作者が警笛。どこでもドアの使い過ぎには注意」 「iPhoneアプリ作者が語るSETI理論。異星人さんは何処!?」 ![]() |
||