Ns user defaults

420 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
420
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ns user defaults

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

×