質問

私はシンチャタッチの初心者です。基本的にはブラックベリーの開発者です。現在、Sencha Touch 1.1をサポートするためにアプリケーションを移行しています。これで、選択した値をローカルデータベースに保存したいようなビジネスソリューションがいくつかあります。私は、ユーザーが各画面で値を選択すると、以下の形式にデータを保存する必要がある複数の画面があるということです。

{'key1': "value1"、 'key2': "value2"、 'key3': "value3"、 'key4': "value4"、 'key5': "value5"}]

1.最初に、値をキー値のペアに保存する必要があります

2.キーはプライマリキーの役割を果たす必要があります。キーを複製してはなりません。

3.アプリケーションのライフサイクルまたはアプリケーションセッションまで利用できるはずです。データを永続的に保存する必要はありません。

LocalStorageProxy、JSonStoreなどのコンセプトに出くわしました。特定の要件に使用できるものがわかりません。

私の質問はもう少し混乱しているかもしれません。 BlackBerry Javaで同じベクトルを使用して同じことを達成したので、これに類似したデータ構造は私を助けることができます。次のような基本操作が必要です

  1. 作成
  2. 追加
  3. 削除する
  4. すべて削除する
  5. キーに基づいて要素を取得します

サンプルやコードスナップショットをいくつか提案してください。これを達成するのに役立つかもしれません。

編集:1

@ilya139の答えに従って変更を加えました。今、私はキーでデータを追加することができます、

// this is my Object declared in App.js
NSDictionary: {},

// adding the data to object with key
MyApp.NSDictionary['PROD'] = 'SONY JUKE BOX';

//trying to retrieve the elements from vector 
var prod = MyApp.NSDictionary['PROD'];

上記の構文を使用して要素を取得できないナット。

役に立ちましたか?

解決

データを永続的に保存する必要がない場合は、必要なプロパティを備えたグローバルオブジェクトを使用することができます。最初にこのようなオブジェクトを定義します。

 new Ext.Application({
    name: 'MyApp',
    vectorYouNeed: {},
   launch: function () { ...

次に、このようなオブジェクトにキー値のペアを追加します

 MyApp.vectorYouNeed[key] = value;

そして、このようにそれらを取得します

 value = MyApp.vectorYouNeed[key];

キーは文字列オブジェクトであることに注意してください var key='key1'; 価値はあらゆる種類のオブジェクトにすることができます。

1つの値を削除します MyApp.vectorYouNeed[key] = null; そしてそれらすべてを削除するために MyApp.vectorYouNeed = {};

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top