स्विफ्ट 2.3 में, हम कुछ इस तरह लिख सकते हैं:स्विफ्ट 3 परिवर्तनशील लापता कार्य ('... Inplace' विधि)
var rect = CGRect(...)
rect.offsetInPlace(dx: 15, dy: 0)
सही करने के लिए एक रेक्ट 15pt स्थानांतरित करने के लिए।
हालांकि स्विफ्ट 3 में, ऐसा लगता है कि यह फ़ंक्शन मौजूद नहीं है। CGRect
इंटरफ़ेस का निरीक्षण करते समय हम केवल गैर उत्परिवर्तन संस्करण offsetBy(dx:, dy:)
देख सकते हैं। यह उन सभी स्थानों पर भी सच है जिन्हें हमने आम तौर पर उत्परिवर्तन कार्यों का उपयोग किया है (नाम ...inPlace
)। मैंने पहले ही गिटहब पर स्विफ्ट इवोल्यूशन रेपो की खोज की है, लेकिन इसके बारे में कोई नोट नहीं मिला।
क्या उत्परिवर्तन भिन्नताएं हटा दी गई हैं? क्या शेष कार्य स्वचालित रूप से उत्परिवर्तित है कि रिटर्न मान का उपयोग किया जाता है या नहीं? आईएमएचओ, अगर उन्हें वास्तव में हटा दिया गया है, तो यह शर्म की बात होगी, क्योंकि वे कोड आधारित लेआउट आदि करते समय बहुत सुविधाजनक होते थे।
यह तब तक आप के रूप में कर सकते हैं में पदावनत https://developer.apple.com/reference/coregraphics/cgrect/1455748-offsetinplace –
के रूप में प्रदर्शित नहीं करता है का पालन करें 'विस्तार CGRect { समारोह offsetInPlace परिवर्तनशील (डीएक्स: सीजीएफएलएटी, डीई: सीजीएफएलएटी) { स्वयं = ऑफसेट बी (डीएक्स: डीएक्स, डीई: डीई) } } ' –
हाँ मुझे पता है कि मैं आगे बढ़ सकता हूं और गायब चीजों के लिए एक्सटेंशन लिख सकता हूं। लेकिन मैं उन सभी के लिए ऐसा करने से बचाना चाहूंगा .. आमतौर पर ढांचे द्वारा प्रदान की जाने वाली जगहों के तरीके .. – Cabus