Мне нужно передать массив по ссылке (потому что вызываемая функция изменяет его, и изменения должны отражаться на сайте вызова). Поскольку Swift массивы передаются по значению и NSArrays, по ссылке, я попытался объявить функцию как:Как объявить NSArray определенного типа в Swift?
func save(_ photos: NSMutableArray<Photo>) {
Но Xcode говорит, что я не могу специализировать без универсального типа NSMutableArray. Так что я должен:
func save(_ photos: NSMutableArray) {
Это теряет безопасность типа. Есть ли способ, которым я могу обладать безопасностью типа и передавать по значению?
Хм ... Спасибо. Я предпочитаю NSArray, потому что наличие двух массивов, даже временно, вызывает больше вопросов. Что произойдет, если какая-либо другая функция, вызванная в середине внешней функции, обратится к исходному массиву? Он не увидит сделанные обновления. Что-нибудь мне не хватает? –