2013-07-10 3 views
2

그래서 저는 GPA 계산기 앱을 만들고 있습니다. 현재 키딩 용 문자열과 값의 번호 (예 : @"A" ->4.0)를 사용하여 채점 척도를 NSDictionary으로 저장했습니다.부동산 목록 Vs. NSDictionary

나는 종종 NSDictionary에서 허용하지 않는 여러 가지 방법으로 데이터에 액세스해야한다는 것을 알고있었습니다. 예를 들어 정렬을 위해 각 항목에 태그를 추가 할 수 있습니다. 이것은 속성 목록이 설계된 유형입니까? 키 @"A"1 태그가 있고 값이 4.0이 될 수 있습니까? I는 다음과 같이 생각했다 :

<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> 

이 바른 길인가 또는 나는 심지어 가까운입니까?

편집 : 내가 정말하고 싶은 모든 STRING_VALUE, point_value, 또는 태그에 의해 특정 값을 참조 할 수있다

<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> 

: 그래서 내가 좋아하는 뭔가 사전의 배열에 대한 갔어요. 위는 내가 이것을 할 수있게합니까?

+0

당신이 여기에있는 것은 내가하는 일입니다. @QwertyBob이 아래 답변에서 말하듯이, 이것이 파일에 저장되는 방식 일뿐입니다. 배열을 만든 다음 예제와 같은 값을 사용하여 채점 척도에서 각 등급에 대해 하나의 사전 객체를 추가합니다. 파일에 저장하고 싶지 않으면 plist가 필요하지 않습니다. (당신이 물어 본 점수 시스템 대신 특정 학생 과제에 대한 성적 정보를 저장하고 있기 때문에 사전의 가치를 제외하고 나는 그의 모든 대답에 동의한다.) – lnafziger

+0

나는 그것을 저장하고 싶다. 파일. 일단 점수가 설정되면 변경 될 가능성이 없으므로 성적을 유지해야합니다. – LT819

+0

글쎄, 코드로 작성하면 변경하지 않아도된다. (이런 식으로 등급이 매겨지기는 드문 경우는 제외) 실제로 파일에 쓸 필요가 없다. .. – lnafziger

답변

2

속성 목록은 파일 형식입니다. NSDictionary는 클래스입니다. 교환 할 수 없습니다.


그것은 당신이 저장하고 싶은 것 사이 (적어도 내게는) 관계 명확하지 않다. 이 사전이 대신 실제가 아닌 수치 편지 등급의 값 (즉 "는 'A'는 나의 평점에서 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 

그럼 원하는대로 코스 배열을 쉽게 정렬 할 수 있습니다.

+0

응답 해 주셔서 감사합니다. 현재, plist에 저장하기를 원하는 것은 모두 등급을 매기는 것입니다. 나는 여러 사전들을 선택했다. – LT819