में लूप के अंदर ऑब्जेक्ट की प्रॉपर्टी बदलना मैंने शॉपिंगलिस्ट नामक एक साधारण स्ट्रक्चर बनाई है।स्विफ्ट
struct ShoppingList {
var shoppingListId :NSNumber
var title :String
var groceryItems :[GroceryItem]
init() {
self.title = ""
self.groceryItems = [GroceryItem]()
self.shoppingListId = NSNumber(integer: 0)
}
}
अगला मैं इस तरह एक ShoppingList सरणी बनाया:
var shoppingLists = [ShoppingList]()
उसके बाद मैं अब खरीदारी सूचियों आदि लाने, मैं shoppingLists के माध्यम से पुनरावृति और शीर्षक बदलने, लेकिन यह कभी शीर्षक संपत्ति अद्यतन करता है ।
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
मेरा मानना है कि जब मैं लूप चला रहा हूं तो यह मूल्य से प्रतिलिपि बना रहा है और इसलिए मूल सरणी कभी नहीं बदली जाती है। फॉर लूप का उपयोग करके मैं मूल सरणी कैसे बदल सकता हूं?
एक स्पष्ट और संक्षिप्त प्रश्न पोस्ट करने के लिए धन्यवाद, आपने डेवलपर्स में अपना विश्वास नवीनीकृत कर दिया है। – RyanR