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

More Related Content

What's hot

後期第二回ネットワークチーム講座資料
後期第二回ネットワークチーム講座資料後期第二回ネットワークチーム講座資料
後期第二回ネットワークチーム講座資料densan_teacher
 
MariaDB Spider Mroonga 20140218
MariaDB Spider Mroonga 20140218MariaDB Spider Mroonga 20140218
MariaDB Spider Mroonga 20140218Kentoku
 
Indexed DBについて(書きかけ)
Indexed DBについて(書きかけ)Indexed DBについて(書きかけ)
Indexed DBについて(書きかけ)iPride Co., Ltd.
 
Aerospike基本のき
Aerospike基本のきAerospike基本のき
Aerospike基本のきYuto Suzuki
 
Aws x MLB ~after cast~
Aws x MLB ~after cast~Aws x MLB ~after cast~
Aws x MLB ~after cast~Yuta Matsumura
 
play framework 勉強会 in 関西
play framework 勉強会 in 関西play framework 勉強会 in 関西
play framework 勉強会 in 関西Shinichi Kozake
 
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことTrinityT _
 
レンタルサーバーとVPSそしてクラウド
レンタルサーバーとVPSそしてクラウドレンタルサーバーとVPSそしてクラウド
レンタルサーバーとVPSそしてクラウドsnicker_jp
 
ファイルサーバーをクラウド化したい
ファイルサーバーをクラウド化したいファイルサーバーをクラウド化したい
ファイルサーバーをクラウド化したいmokudai masayuki
 
Elasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFessElasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFessShinsuke Sugaya
 
内部サイトを(できるだけ安全に)外部から閲覧する方法
内部サイトを(できるだけ安全に)外部から閲覧する方法内部サイトを(できるだけ安全に)外部から閲覧する方法
内部サイトを(できるだけ安全に)外部から閲覧する方法ProjectDC-01
 
第6回はじめてのAws jaws ug-iwata
第6回はじめてのAws jaws ug-iwata第6回はじめてのAws jaws ug-iwata
第6回はじめてのAws jaws ug-iwataiwata jaws-ug
 
おれよりすごいておくれにあいにきた
おれよりすごいておくれにあいにきたおれよりすごいておくれにあいにきた
おれよりすごいておくれにあいにきたKatsuyoshi Matsumoto
 
Postgresqlのワーキングセットが大きくなる現象について
Postgresqlのワーキングセットが大きくなる現象についてPostgresqlのワーキングセットが大きくなる現象について
Postgresqlのワーキングセットが大きくなる現象について拓也 岸本
 
STNSサーバーを書いてみた
STNSサーバーを書いてみたSTNSサーバーを書いてみた
STNSサーバーを書いてみたYoshinori Teraoka
 

What's hot (20)

20120222
2012022220120222
20120222
 
後期第二回ネットワークチーム講座資料
後期第二回ネットワークチーム講座資料後期第二回ネットワークチーム講座資料
後期第二回ネットワークチーム講座資料
 
MariaDB Spider Mroonga 20140218
MariaDB Spider Mroonga 20140218MariaDB Spider Mroonga 20140218
MariaDB Spider Mroonga 20140218
 
Indexed DBについて(書きかけ)
Indexed DBについて(書きかけ)Indexed DBについて(書きかけ)
Indexed DBについて(書きかけ)
 
Aerospike基本のき
Aerospike基本のきAerospike基本のき
Aerospike基本のき
 
Aws x MLB ~after cast~
Aws x MLB ~after cast~Aws x MLB ~after cast~
Aws x MLB ~after cast~
 
JAWS-UG CLI #07 VPC
JAWS-UG CLI #07 VPCJAWS-UG CLI #07 VPC
JAWS-UG CLI #07 VPC
 
play framework 勉強会 in 関西
play framework 勉強会 in 関西play framework 勉強会 in 関西
play framework 勉強会 in 関西
 
Webサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのこと
 
レンタルサーバーとVPSそしてクラウド
レンタルサーバーとVPSそしてクラウドレンタルサーバーとVPSそしてクラウド
レンタルサーバーとVPSそしてクラウド
 
ファイルサーバーをクラウド化したい
ファイルサーバーをクラウド化したいファイルサーバーをクラウド化したい
ファイルサーバーをクラウド化したい
 
LocalStack
LocalStackLocalStack
LocalStack
 
U boot-for-zynqberry
U boot-for-zynqberryU boot-for-zynqberry
U boot-for-zynqberry
 
Elasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFessElasticsearchベースの全文検索システムFess
Elasticsearchベースの全文検索システムFess
 
内部サイトを(できるだけ安全に)外部から閲覧する方法
内部サイトを(できるだけ安全に)外部から閲覧する方法内部サイトを(できるだけ安全に)外部から閲覧する方法
内部サイトを(できるだけ安全に)外部から閲覧する方法
 
第6回はじめてのAws jaws ug-iwata
第6回はじめてのAws jaws ug-iwata第6回はじめてのAws jaws ug-iwata
第6回はじめてのAws jaws ug-iwata
 
おれよりすごいておくれにあいにきた
おれよりすごいておくれにあいにきたおれよりすごいておくれにあいにきた
おれよりすごいておくれにあいにきた
 
Postgresqlのワーキングセットが大きくなる現象について
Postgresqlのワーキングセットが大きくなる現象についてPostgresqlのワーキングセットが大きくなる現象について
Postgresqlのワーキングセットが大きくなる現象について
 
Nginx
NginxNginx
Nginx
 
STNSサーバーを書いてみた
STNSサーバーを書いてみたSTNSサーバーを書いてみた
STNSサーバーを書いてみた
 

Viewers also liked

Marine national parks
Marine national parksMarine national parks
Marine national parksPenbank
 
Cio如何制定与企业战略匹配的it战略规划
Cio如何制定与企业战略匹配的it战略规划Cio如何制定与企业战略匹配的it战略规划
Cio如何制定与企业战略匹配的it战略规划sunzhou241
 
Marine national parks
Marine national parksMarine national parks
Marine national parksPenbank
 
ナイーブツリーの入れ子集合
ナイーブツリーの入れ子集合ナイーブツリーの入れ子集合
ナイーブツリーの入れ子集合Akura Pi
 
TableViewAgent
TableViewAgentTableViewAgent
TableViewAgentAkura Pi
 
そもそもFloatとは
そもそもFloatとはそもそもFloatとは
そもそもFloatとはAkura Pi
 

Viewers also liked (10)

Currying
CurryingCurrying
Currying
 
List demo2
List demo2List demo2
List demo2
 
List demo1
List demo1List demo1
List demo1
 
Exp fisica
Exp fisicaExp fisica
Exp fisica
 
Marine national parks
Marine national parksMarine national parks
Marine national parks
 
Cio如何制定与企业战略匹配的it战略规划
Cio如何制定与企业战略匹配的it战略规划Cio如何制定与企业战略匹配的it战略规划
Cio如何制定与企业战略匹配的it战略规划
 
Marine national parks
Marine national parksMarine national parks
Marine national parks
 
ナイーブツリーの入れ子集合
ナイーブツリーの入れ子集合ナイーブツリーの入れ子集合
ナイーブツリーの入れ子集合
 
TableViewAgent
TableViewAgentTableViewAgent
TableViewAgent
 
そもそもFloatとは
そもそもFloatとはそもそもFloatとは
そもそもFloatとは
 

Similar to Ns user defaults

Kubernetes in プロダクション! -- cndjp第2回
Kubernetes in プロダクション! -- cndjp第2回Kubernetes in プロダクション! -- cndjp第2回
Kubernetes in プロダクション! -- cndjp第2回Hiroshi Hayakawa
 
AWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAmazon Web Services Japan
 
Hadoopデータプラットフォーム #cwt2013
Hadoopデータプラットフォーム #cwt2013Hadoopデータプラットフォーム #cwt2013
Hadoopデータプラットフォーム #cwt2013Cloudera Japan
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)Takahiro Iwase
 

Similar to Ns user defaults (6)

Osoljp201210 oi swift
Osoljp201210 oi swiftOsoljp201210 oi swift
Osoljp201210 oi swift
 
Kubernetes in プロダクション! -- cndjp第2回
Kubernetes in プロダクション! -- cndjp第2回Kubernetes in プロダクション! -- cndjp第2回
Kubernetes in プロダクション! -- cndjp第2回
 
AWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon AthenaAWS Black Belt Online Seminar 2017 Amazon Athena
AWS Black Belt Online Seminar 2017 Amazon Athena
 
いまさら NSArray
いまさら NSArrayいまさら NSArray
いまさら NSArray
 
Hadoopデータプラットフォーム #cwt2013
Hadoopデータプラットフォーム #cwt2013Hadoopデータプラットフォーム #cwt2013
Hadoopデータプラットフォーム #cwt2013
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)
 

More from Akura Pi

Githubサービスについて
GithubサービスについてGithubサービスについて
GithubサービスについてAkura Pi
 
フィア・オブ・ジ・アンノウン
フィア・オブ・ジ・アンノウンフィア・オブ・ジ・アンノウン
フィア・オブ・ジ・アンノウンAkura Pi
 
ファントムファイル
ファントムファイルファントムファイル
ファントムファイルAkura Pi
 
Metaprogramming
MetaprogrammingMetaprogramming
MetaprogrammingAkura Pi
 
Storyboard
StoryboardStoryboard
StoryboardAkura Pi
 
Mvcのすすめ
MvcのすすめMvcのすすめ
MvcのすすめAkura Pi
 
Groovy base
Groovy baseGroovy base
Groovy baseAkura Pi
 

More from Akura Pi (8)

Githubサービスについて
GithubサービスについてGithubサービスについて
Githubサービスについて
 
Slide
SlideSlide
Slide
 
フィア・オブ・ジ・アンノウン
フィア・オブ・ジ・アンノウンフィア・オブ・ジ・アンノウン
フィア・オブ・ジ・アンノウン
 
ファントムファイル
ファントムファイルファントムファイル
ファントムファイル
 
Metaprogramming
MetaprogrammingMetaprogramming
Metaprogramming
 
Storyboard
StoryboardStoryboard
Storyboard
 
Mvcのすすめ
MvcのすすめMvcのすすめ
Mvcのすすめ
 
Groovy base
Groovy baseGroovy base
Groovy base
 

Ns user defaults