2

所以我正在开发一个 GPA 计算器应用程序。现在,我将我的评分标准存储为NSDictionary一个字符串作为键,一个数字作为值(即@"A"--> 4.0)。

我已经意识到我经常需要以NSDictionary不允许的不同方式访问数据。例如,我可能想为每个条目添加一个标签以进行排序。这是为属性列表设计的类型吗?我可以有一个@"A"带有标签的键和一个与之关联1的值吗?4.0我在想这样的事情:

<dict>
    <key>GradeScale</key>
    <array>
        <dict>
            <key>A_grade</key>
            <string>A</string>
            <key>point_value</key>
            <number>4.0</number>
           <key>tag</key>
           <number>1</number>
        </dict>
        <dict>
            <key>B_grade</key>
            <string>B</string>
            <key>point_value</key>
            <number>3.0</number>
           <key>tag</key>
           <number>2</number>

        </dict>
    </array>
</dict>

这是正确的轨道还是我什至没有接近?

编辑:所以我已经使用了一系列字典,例如:

<dict>
    <key>Grade_Scale</key>
    <array>
        <dict>
            <key>string_value</key>
            <string>A</string>
            <key>point_value</key>
            <real>4</real>
            <key>Tag</key>
            <integer>1</integer>
        </dict>
        <dict>
            <key>string_value</key>
            <string>A-</string>
            <key>point_value</key>
            <real>3.7</real>
            <key>Tag</key>
            <integer>2</integer>
        </dict>

我真正想做的就是能够通过 string_value、point_value 或 tag 引用某个值。以上是否允许我这样做?

4

1 回答 1

2

属性列表只是一种文件格式。NSDictionary 是一个。它们不可互换。


目前尚不清楚(至少对我而言)您要存储的内容之间的关系。(所以可能会有更好的结构)

如果这本字典不是保存字母成绩的数值(即“一个'A'在我的GPA中值10分”)而是保存课程的实际成绩:那么也许你需要的是一个保存字典的数组。

Array            // Holding each 'courses'.
of Dictionaries  // Where everything about the courses is stored:
                 //     {"name" => "Biology"
                 //      "grade" =>  ...
                 //      "tag"  => "science"
                 //      "scoreWeight"  =>   0.8  // this is worth 80% of my total score

然后,您可以随意对课程数组进行排序。

于 2013-07-10T14:39:14.433 回答