0

これは、配列を使用して辞書を作成した方法です。

@IBAction func didTapSaveButton(sender: UIButton) {
    var hooObject = Dictionary<String, [String]>()
    hooObject["\(dayLabel.text)"] = ["\(fromTimeLabel.text) - \(toTimeLabel.text)", "\(costField.text)"]
    NSLog("RESULT: \(hooObject)")
}

NSLog の結果:

 RESULT: [Optional("Wednesday"): [Optional("9:00 PM") - Optional("3:00 PM"), 40.00]]

私はこれを試しました:

@IBAction func didTapSaveButton(sender: UIButton) {
    var hooObject = Dictionary<String, [String]>()
    hooObject["\(dayLabel.text)"] = ["\(fromTimeLabel.text) - \(toTimeLabel.text)", "\(costField.text)"]
    var res = hooObject["Wednesday"]
    NSLog("RESULT: \(res)")

}

これは意味をなさない nil を返します。水曜日は保存されたキーなので、配列を返すだけで十分だと思いました。

私がやろうとしていること:

基本的に、7 つのセクションからなるテーブルがあり、それぞれが 1 日を表しています。毎日、そのスロットでアクティビティを予約するためのコストを含むタイムスロットを保存しています。

numberOfRowsInSection を使用すると、Dictionary キーを使用して、tableView に表示される特定の日の行数 (タイムスロット) を取得できます。これは、NOSql で行うと考えられる最も簡単な方法でした。

辞書を parse.com の列に保存し、tableView でその辞書にアクセスします。

とにかく、キーで配列にアクセスできないように見える理由がわかりません。私は簡単に NSMutableDictionary にアクセスして使用することができましたが、学習経験としてすべてのプロジェクトで Swift を使用しています。

["fromTime":value, "toTime":value, "cost":value] などの辞書で Dictionary を使用する方がよいかどうか疑問に思っています。

与えられた助けに感謝します。

御時間ありがとうございます。

4

2 に答える 2

1

問題は、文字列補間を使用することから発生します。これは でありdayLabel.textString?ではないためString、「水曜日」ではなく「オプション(水曜日)」がキーとして使用されます。次のように、ラップを解除する必要があります。

@IBAction func didTapSaveButton(sender: UIButton) {
    var hooObject = Dictionary<String, [String]>()
    if let day = dayLabel.text {
        hooObject["\(day)"] = ["\(fromTimeLabel.text) - \(toTimeLabel.text)", "\(costField.text)"]
        NSLog("RESULT: \(hooObject)")
    }
}

必要な値を取得するには、おそらく from フィールドと to フィールドで同様のことを行う必要があります。

于 2014-09-17T00:09:22.797 に答える
0

私の答え:

@IBAction func didTapSaveButton(sender: UIButton) {
    var hooObject = Dictionary<String, [String]>()
    hooObject["\(dayLabel.text!)"] = ["\(fromTimeLabel.text) - \(toTimeLabel.text)", "\(costField.text)"]
    var res = hooObject["Wednesday"]
    NSLog("RESULT: \(res)")
}

dayLabel.text を dayLabel.text に変更する必要がありました。

それらの感嘆符は本当に私を困惑させます。IntやFloatなどでは使用できないため、最初はポインターのようなものだと思いました(そう思います)。

しかし、他のラベルではなく、dayLabel.text の最後に 1 つ必要であるという事実は、私をさらに困惑させます。そのうちに、あははの瞬間が来ると思います。ここでいくつかの投稿を読みましたが、まだよくわかりません。

于 2014-09-17T00:09:46.880 に答える