レシピマネージャのアプリに成分スケーリング機能を提供しようとしています。 スケーリングされた結果は表示目的のみであり、永続化されません。文字列内の数字を検索して計算する、文字列に挿入する(Swift)
揚げた米のレシピがあり、その成分は2 bowls of rice, 1 egg, 1 tbsp soy sauce
で、これは2人前分です。
があります - と、この番号「2」の間の+ボタンがたび - 2 +
ようになります/デクリメント食分をインクリメントする - と+アイコンが押され、それから番号を取得する関数を実行します成分ストリングと1食分の成分量を得る。レシピデータは任意のサービングサイズで保存できるので、スケーリングのためには常に1サービング分から開始する必要があります。 私の例では、1サービング成分の量は1 bowls of rice, 0.5 egg, 0.5 tbsp soy sauce
なので、[1, 0.5, 0.5]
となるはずです。
次に、ユーザーの行動に基づいて原料の量を調整することができます。 これまでのところ、成分文字列全体から数列を取り出し、それを配列にしてInt配列に変換する次のコードを見つけました。
ここから数値を計算するさまざまな方法を試しましたが、期待された数値が得られませんでした。私は何を達成していないことである。
- は1つのサービス提供量に+に基づいて
- 規模の量は、Get - アクション
- を
私はあなたが間違った終わりからこれに近づいていると思います。データソースは、すべての成分(文字列として)と金額(数値として)を持つ構造体でなければなりません。構造体の配列その後、金額を簡単に変更することができます。そのデータソースから、表示用のテキスト表現を作成します。 –
はい、あなたは正しいです。理想的なデータモデルは量と成分を別々に分けることです。しかし、スケーリング機能以外に、私は成分の部分を扱うものを提供しないので、私は簡単な方法を選んだ。モバイルデバイスなどで簡単に入力できるように、全体的な文字列にすることの利点があります。私は、特定の状況でそのような機能を提供したい場合、回避策を探しています。 –
はこちら[米2杯、卵1個、醤油大さじ1個]アレイ? – Madhumitha