दस्तावेज़ से मुझे यह कोड मिला:

let jane: MyPersonEntity = // ...

CoreStore.perform(
    asynchronous: { (transaction) -> Void in
        // WRONG: jane.age = jane.age + 1
        // RIGHT:
        let jane = transaction.edit(jane)! // using the same variable name protects us from misusing the non-transaction instance
        jane.age = jane.age + 1
    },
    completion: { _ in }
)

निश्चित नहीं है कि हमें ऐसा करने की आवश्यकता क्यों है // using the same variable name protects us from misusing the non-transaction instance

जैसा कि स्विफ्ट ने मुझे उनमें से दो का उपयोग करने का सुझाव दिया है:

enter image description here

0
Matrosov Alexander 30 अप्रैल 2019, 15:11

1 उत्तर

सबसे बढ़िया उत्तर

यह सुझाव वेरिएबल नेम शैडोइंग फीचर का उपयोग करता है जो कि स्विफ्ट में है।

एक्सकोड स्वत: पूर्ण आपको अभी भी "जेन" दोनों दिखाएगा, क्योंकि नाम वाला दूसरा नाम भी उसी दायरे में है, हालांकि इसका कभी भी उपयोग नहीं किया जा सकता है - क्योंकि यह छाया हुआ है। इससे कोई फर्क नहीं पड़ता कि आप वहां क्या चुनते हैं। इस कारण से यह लेन-देन की वस्तुओं को संभालने का सबसे सुरक्षित तरीका है क्योंकि यह आपको गलती से गलत का उपयोग करने से रोकता है।

1
MartinM 30 अप्रैल 2019, 13:20