Alterando as propriedades do objeto para dentro do loop no Swift

Eu criei uma estrutura simples chamada ShoppingList.

struct ShoppingList {

    var shoppingListId :NSNumber
    var title :String
    var groceryItems :[GroceryItem]

    init() {
        self.title = ""
        self.groceryItems = [GroceryItem]()
        self.shoppingListId = NSNumber(integer: 0)
    }

}

Em seguida, criei uma matriz ShoppingList como esta:

 var shoppingLists = [ShoppingList]()

Depois disso, busco as listas de compras etc. Agora, eu percorro as shoppingLists e altero o título, mas ele sempre atualiza a propriedade title.

 for var shoppingList in shoppingLists {
  let items = getGroceryItemsByShoppingList(shoppingList)
    shoppingList.groceryItems = getGroceryItemsByShoppingList(shoppingList)
    shoppingList.title = "BLAH" // copied by value
    print("ShoppingList \(shoppingList.title) has \(shoppingList.groceryItems.count) items") // THIS PRINT BLAH
}

print("shoppingLists[0].groceryItems.count \(shoppingLists[0].groceryItems.count)") // THIS PRINTS THE ORIGINAL CONTENT

Acredito que quando estou executando o loop, ele está copiando por valor e, portanto, a matriz original nunca é alterada. Como posso alterar a matriz original usando o loop For?

questionAnswers(2)

yourAnswerToTheQuestion