Swift에서 빈 사전 배열 초기화
Swift에서 빈 배열을 초기화하는 데 머리를 감 으려고합니다.
많은 배열의 경우 매우 간단합니다.
var myStringArray: String[] = []
myStringArray += "a"
myStringArray += "b"
-> ["a", "b"]
그리고 정수
var myIntArray: Int[] = []
myIntArray += 1
myIntArray += 2
-> [1, 2]
NSImage와 같은 다른 유형의 발광합니다.
let path = "/Library/Application Support/Apple/iChat Icons/Flags/"
let image1 = NSImage(byReferencingFile: path + "Brazil.png")
let image2 = NSImage(byReferencingFile: path + "Chile.png")
var myImageArray: NSImage[] = []
myImageArray += image1
myImageArray += image2
-> [<NSImage 0x7fe371c199f0 ...>, <NSImage 0x7fe371f39ea0 ...>]
그러나 빈 사전 배열을 초기화하는 구문을 사용할 수 없습니다.
초기 값으로 초기화하기 때문에 유행을 수 있습니다.
let myDict1 = ["someKey":"someValue"]
let myDict2 = ["anotherKey":"anotherValue"]
var myDictArray = [myDict1]
myDictArray += myDict2
-> [["someKey": "someValue"], ["anotherKey": "anotherValue"]]
그러나 이것은 (구문이 예상되는) 실패합니다.
var myNewDictArray: Dictionary[] = []
오류와 함께 Cannot convert the expression's type 'Dictionary[]' to type 'Hashable'
따라서 질문은 빈 사전 항목 배열을 초기화하는 올바른 방법이 무엇 이며이 구문이 var myNewDictArray: Dictionary[] = []
작동 하지 않는 이유는 무엇입니까?
사전에 유형을 제공해야합니다.
var myNewDictArray: [Dictionary<String, Int>] = []
또는
var myNewDictArray = [Dictionary<String, Int>]()
편집 : 더 짧은 구문을 사용할 수 있습니다.
var myNewDictArray: [[String:Int]] = []
또는
var myNewDictArray = [[String:Int]]()
이렇게하면 변경이 불가능한 비어있는 사전이 생성됩니다.
let dictionary = [ : ]
그리고 변경 가능한 것을 표현 :
var dictionary = [ : ]
이 두 사전의 링크는 모두입니다 Dictionary<String?, AnyObject?>
.
작동하지 않는 이유 :
var myNewDictArray: Dictionary[] = []
정의 할 때 사전의 키와 값에 대한 유형을 제공해야한다는 것입니다. 업그레이드 된 배열을 만듭니다.
var dictArray1: Dictionary<String, String>[] = Dictionary<String, String>[]()
var dictArray2: Dictionary<String, String>[] = []
var dictArray3 = Dictionary<String, String>[]()
더 이상 요소 연결을 사용할 수 없습니다.
class Image {}
Image i1
Image i2
var x = [Image]()
x += i1 // will not work (adding an element is ambiguous)
x += [i1] // this will work (concatenate an array to an array with the same elements)
x += [i1, i2] // also good
var yourArrayname = [String]() // String or anyOther according to need
2.3을 사용하여 사용할 수 있습니다!
let path = "/Library/Application Support/Apple/iChat Icons/Flags/"
let image1 = UIImage(contentsOfFile: readPath + "Brazil.png")
let image2 = UIImage(contentsOfFile: readPath + "Chile.png")
var myImageArray = [UIImage]()
myImageArray.append(image1)
myImageArray.append(image2)
참고 URL : https://stackoverflow.com/questions/24112627/initialising-empty-arrays-of-dictionaries-in-swift
'ProgramingTip' 카테고리의 다른 글
div 클래스의 스타일 속성을 변경하는 jquery (0) | 2020.10.25 |
---|---|
Python에서 가장 좋은 방법 목록을 무작위 화하는 가장 좋은 방법 (0) | 2020.10.25 |
C # ListView 열 너비 자동 (0) | 2020.10.25 |
부트를 사용하여 바디의 최대 너비 설정 (0) | 2020.10.25 |
Objective-C : @interface 전에 @class 지시문? (0) | 2020.10.25 |