Mam zmienną w mojej klasie:„Puste kolekcja dosłowne wymaga wyraźnego typu” błąd na Swift3
var list = []
i używam go na funkcję mojej klasy:
func chargeData (data: NSArray){
list = data
}
to działało dobrze na moim projekcie w Swift 2.3
ale kiedy zaktualizowaniu go do XCode8
i Swift3
daje mi następujący błąd:
Empty collection literal requires an explicit type
więc dodałem typecast do mojej listy zmiennej:
var list = [] as! NSArray
ale daje mi następujący alert:
Forced cast of 'NSArray' to same type has no effect
wiem, że wpis nie złamał aplikacji, ale chciałbym lubię rozwiązać ten błąd we właściwy sposób.
Czy ktoś miał ten sam błąd i rozwiązał go poprawnie?
Z góry dziękuję!
Będziesz musiał wykonać 'var list: NSArray = []'. Jest OK, jeśli po prostu zastąpisz go innym. Ale nie jest to * zmienne *, więc 'var list: NSMutableArray = []' byłoby lepsze, jak przypuszczam. – Moritz
@EricAya Co tak naprawdę znaczysz z tym, że sam się nie zmienia? Wiem, że zmienna oznacza, że może zmienić swoje wartości, ale nie jestem do końca pewien, co masz na myśli mówiąc "sama zmiana". –
CodeDifferent wyjaśnia to w swojej odpowiedzi. var/let i NSArray/NSMutableArray. – Moritz