31歳から始める初心者のアプリ制作勉強ブログ

アプリ制作の勉強の経過や雑記などを書いていきます

カメラのイメージとアルバムのイメージ保存を分ける

 ・写真を撮った時とアルバムからイメージを選択した時に呼ばれるメソッドは一緒

カメラアプリを作っていてカメラボタンとアルバムボタンを一緒に置くと保存の時

同じオリジナルイメージを参照にしてしまう為に撮影した画像を保存しているつもりが

アルバムから編集目的で選んだ画像まで保存してしまいます。

当たり前すぎて検索しても出てこなかった為打開策を

 ・無理矢理の打開

UIImagePickerControllerを使って写真を撮った時とアルバムから写真を選択した時に

呼ばれるメソッドは同じなんですね。

f:id:inou-social:20140207175120p:plain

 

ここの

 

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

というやたら長ったらしいメソッドが呼ばれます。これは画像が選択された時に

保存したりと管理するメソッドなので両方ここを通るんですよね。

 

・最初に取った方法

同じ名前を参照にして保存しているならと最初に取った方法が

アルバムを開いた時にカウントを持たせてカウントがあれば画像を保存しない

でした。写真を選択すればカウントが消えるようにしていたんですが・・・

一応動くには動いていたんですがこれをちょっと横から見た先輩が

「わざわざそんな事しなくてもプロパティがあるのに・・・」といった感じで

教えて頂きました・・・・。

 

UIImagePickerControllerにはソースタイプという物があります。

このソースタイプの違いでカメラを起動したりアルバムを開いたりってできてるんですが、どこから選択された物なのかはここを参照にすればいいらしいのです。

なのでソースタイプをswtich文でカメラ、アルバム、ライブラリーで分けてみました。

f:id:inou-social:20140207175753p:plain

 

見て頂いたら分かるようにソースタイプカメラの時だけ保存を行うようにしました。

 

やり方に困った時はなにか打開策を自分で考える前にプロパティを調べて使えそうな

物が何か無いか調べる癖をつける事が必要ですね・・・。