2017-02-13 13 views
0

나는 이렇게 선언 한 사전에 값을 추가하려고합니다.신속한 2.3의 3 가지 요소를 포함하는 사전에 어떻게 값을 추가합니까?

var setHomIconDict:[(iconImg: UIImage, Operator: String, oprCode: String, oprMerchCode:String)]! 

나는 사전이 확실하지 않습니다. 신속한 학습을하고 있으며 인터넷에서 Intresting 코드를 발견했습니다. 어쨌든 나는 이것에 가치를 어떻게 추가 할 것인지 혼란 스럽다. 나는

setHomIconDict.append((iconImg:img!, Operator: "Strin", oprCode: "Hello", oprMerchCode: "Huja")) 

을 시도하지만 난이 오류 : 치명적인 오류 : 선택 사양 값을 풀기 동안 예기치 않게 전무를 발견했다. 여기에 이미지가 있습니다 enter image description here

누구나 적절한 방법을 제안 할 수 있습니다.

+2

필요한 데이터에 대한 모델 클래스를 만듭니다. 그런 다음 모델 클래스의 배열을 만듭니다. 모델 클래스 객체를 필요한 모든 값을 가진 배열에 추가하십시오. –

답변

2

setHomIconDictDictionary이 아니며 튜플 배열이며 setHomIconDict 개체를 초기화하지 않았기 때문에이 충돌이 발생합니다. 방금 형식을 선언했습니다. 그래서 선언으로 초기화했습니다.

var setHomIconDict:[(iconImg: UIImage, Operator: String, oprCode: String, oprMerchCode:String)] = [] 

참고 : 튜플 더 나은 솔루션의 배열을 생성하는 것은 당신이 set/access하려는 속성을 하나 개의 사용자 정의 모델 Class을 만드는 것입니다 대신에, 그 정의 Class 객체의 배열을 만들고 그것을 사용할 수 있습니다.

+0

다음과 같이 초기화해야합니다 : = [] – hasan83

+0

var setHomIconDict : [(iconImg : UIImage, Operator : String, oprCode : String, oprMerchCode : String)] = [] – hasan83

+1

@ hasan83 편집 된 답변 :) –

0

Nirav가 말했듯이 사용하는 구문은 튜플 배열을 만듭니다. 당신이 사전을 원하면 괄호를 제거하십시오. 그런 다음 사용하여 새 키/값 쌍을 추가 할 수 있습니다

var aDict = [key:value, key:value, key:value] 

:

aDict[newKey] = newValue 

만들고 사전을 사용하도록 목표

는이 구문을 사용하여 키/값 쌍을 정의 할 , 또는 당신이 그물에서 발견 한 구조를 이해하고 이해하는 것이 당신의 목표입니까?

2

값을 보유 할 구조체를 만드는 것이 더 좋습니다. 그러면 배열은 해당 구조체의 배열이됩니다.

struct homIcon { 
    var iconImg: UIImage 
    var Operator: String 
    var oprCode: String 
    var oprMerchCode:String 
} 

var setHomIconArray:[homIcon] = [] 

let newHomIcon = homIcon(iconImg: img!, Operator: "Strin", oprCode: "Hello", oprMerchCode: "Huja") 

setHomIconArray.append(newHomIcon)