Ns user defaults

  • 171 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
171
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. NSUserDefaults @akuraru
  • 2. 自己紹介 • 主催者 • Scalaが好き • Objective-Cは生成するもの @akuraru
  • 3. CoreData NSUserDefualts 静的ファイル
  • 4. 静的ファイル • 実行時に変わらない • plist, JSON, csv, text 他
  • 5. NSUserDefualts • 実行時に保存を簡単に扱うクラス • アプリケーションの設定値などを保存 する際用いる • NSMutableDictionaryの様に扱える
  • 6. CoreData • iOSのデータベース • ORマッパー • 複数のオブジェクトを保存したい場合 用いる
  • 7. 裏側の構造 • plistで保存されている • standerDefualtsでファイルを読み込む • registerDefualtsで初期設定する • synchronizeでファイルに保存する • synchronizeは自動的に行われる
  • 8. 型 • NSString • NSNumber • NSArray • NSURL plistで扱える型は全て扱える • NSDictionary • NSData • NSDate型
  • 9. 注意 • “synchronizeは自動的に行われる”が反映される のが遅い - (void)setHoge:(id)obj { NSUserDefaults *defualts = [NSUserDefaults standerDefaults]; [defualts setObject:obj key:@”Hoge”]; } - (id)hoge { NSUserDefaults *defualts = [NSUserDefaults standerDefaults]; return [defualts objectForKey:@”Hoge”]; } setHogeを呼び出した直後にhogeを呼び出 しても正しい値は取れない
  • 10. 注意 • “synchronizeは自動的に行われる”が反映される のが遅い - (void)setHoge:(id)obj { NSUserDefaults *defualts = [NSUserDefaults standerDefaults]; [defualts setObject:obj key:@”Hoge”]; [defualts synchronize]; } - (id)hoge { NSUserDefaults *defualts = [NSUserDefaults standerDefaults]; return [defualts objectForKey:@”Hoge”]; } synchronizeを明示的に呼び出す
  • 11. 注意 • “synchronizeは自動的に行われる”が反映される のが遅い + (id)sheredManager { defualts = [NSUserDefaults standerDefaults]; } - (void)setHoge:(id)obj { [defualts setObject:obj key:@”Hoge”]; } - (id)hoge { return [defualts objectForKey:@”Hoge”]; } シングルトンにする
  • 12. 注意2 • 大量のデータを保存すると重くなる • synchronizeが特に重い • NSArrayやNSDataの保存は避ける 大量のデータを保存するときはCoreData
  • 13. まとめ • CoreDataとNSUserDefualtsで適切に住み 分けをしましょう • 大量に保存すると遅延の原因になりま す