0
Thumbsup

いい質問だ

0

Thumbsdown

うーん

iosでTi.App.Properties.setObjectの使用について

Curry
Curry 10

投稿日:2016-03-09 15:42:39

sdk 5.0.2

お世話になります。

写真撮影やギャラリーをを開いて写真を選択した時に、アプリが落ちた時などを想定して、Ti.App.Properties.setObjectで保管できたらと思い実装しようとしましたがエラーが発生します。

サンプル
Ti.Media.openPhotoGallery({
 success: (e)->
  Ti.App.Properties.setObject('test',e.media)   

エラー
message = "-[TiBlob encodeWithCoder:]: unrecognized selector sent to instance 0x7ff5b46e5120";

コードの書き方が悪いのか、そもそもTi.App.Properties.setObjectがこういう使い方をしないのか、または何か他の方法で対応した方が良いのか、ご教授下さい。

以上、よろしくお願いします。



回答

yagi_
yagi_
2540
Tcad_icon Tcmd_icon Tce_icon

Thumbsup

いい回答

1

Thumbsdown

うーん



Ti.App.Propertiesから呼び出されるAPIはシリアライズしたデータをXMLで保存しているはずなので、バイナリデータは扱わないほうがいいと思います。この場合は

var tmpFile = Ti.Filesystem.tempDirectory + "tmp.png";
var fp = Ti.Filesystem.getFile(tmpFile);
fp.write(e.media);

のように一時的に保存するのが向いているはずです。


回答ありがとうございます。 回答に気づかずに色々やった結果を下記に投稿してしまいました。 --- Curry

Curry
Curry
10

Thumbsup

いい回答

0

Thumbsdown

うーん

写真から一度ファイルを作って、そのパスをsetStringで保存して、使うときはgetStringでパスを取得することで対応できました。

p = Ti.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory + "/" + 'photo.jpeg')
p.createFile()
p.write e.media
Ti.App.Properties.setString('photo1',p.nativePath)


ログインすると回答することができます。