Objective-C(iPhone)でAS3のSharedObject的な!
「**的な!」ってのが決め文句のお笑い芸人っていましたよね?だれでしたっけ?
こんにちは、Satoです。
前回はAS3のTimerクラス的な処理をObjective-Cで実行する方法をかいてみました。
あいかわらずおなか痛いですが、今回はSharedObject的なパラメタ保存について取り上げてみます。
まずAS3でSharedObjectは
var so : SharedObject = SharedObject.getLocal("level0-sample"); var data:Object = so.data; data.company = "KAYAC"; data.address0 = "KAMAKURA"; data.address1 = "JIYUGAOKA"; so.flush();//書き込み ---------------------------------------------------------------- var so : SharedObject = SharedObject.getLocal("level0-sample"); var data:Object = so.data; trace(data.company); //KAYAC trace(data.address0); //KAMAKURA trace(data.address1); //JIYUGAOKA so.clear();//削除
という感じでしょうか。
Objective-C(iPhone)の場合はNSUserDefaultsというクラスがあるみたいで、使用することで保存後アプリを終了し、再度立ち上げたときに保存した値を取得することができるみたいです。
早速使用コードを書いて見ます。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSDictionary *data = [NSDictionary dictionaryWithObjectsAndKeys: @"KAYAC", @"company", @"KAMAKURA", @"address0", @"JIYUGAOKA", @"address1", nil]; [defaults setObject:data forKey:@"data"]; [defaults synchronize]; //書き込み -------------------------------------------------------------------- NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSDictionary *data = [NSDictionary dictionaryWithDictionary:[defaults objectForKey:@"data"]]; NSLog(@"%@", [data objectForKey:@"company"]); //KAYAC NSLog(@"%@", [data objectForKey:@"address0"]); //KAMAKURA NSLog(@"%@", [data objectForKey:@"address1"]); //JIYUGAOKA [defaults setObject:nil forKey:@"data"]; //削除 [defaults synchronize];
という流れみたいです。
nilはnullのようなものなんでしょうか。NSDictionaryはFlashにもDictionaryクラスがあるので同じようなものととらえてるんですが、なんとなくだと危ないですね。。
Flashでの理解からイメージをつなげていくのもとっかかりとしてはいいですがしっかり理解するようにドキュメントをよみこまねばというフェーズです。でも動くものをとりあえず書いてく方がテンションあがるんですよねー。
とまとまりませんが、こんな感じで。
ではでは!