لتحويل الكود من Swift 2 إلى Swift 3، يتطلب الأمر بعض التغييرات البسيطة بناءً على التحديثات التي جرت في لغة البرمجة. ها هو الكود بعد التحويل:
swiftlet size = text.boundingRect(with: CGSize(width: view.frame.width - 26, height: 2000), options: [.usesFontLeading, .usesLineFragmentOrigin], context: nil).size
في هذا التحويل، تم استبدال boundingRectWithSize
بـ boundingRect(with:)
واستخدام البارامترات بطريقة أكثر وضوحًا، كما تم استخدام بعض التغييرات في النحو الجديد للترميز، مثل استخدام CGSize(width:height:)
بدلاً من CGSizeMake
.
المزيد من المعلومات
بالطبع، سأوفر لك المزيد من المعلومات حول التحويل من Swift 2 إلى Swift 3 والتغييرات التي تمت في اللغة.
-
تحديث واجهة الدالة:
في Swift 3، تم تغيير اسم واجهة الدالةboundingRectWithSize
إلىboundingRect(with:)
. هذا التغيير يتيح جعل واجهة الدالة أكثر وضوحًا وملاءمة للقراءة. -
تغيير في البنية النحوية للواجهة:
تم تغيير تركيبة البارامترات في دالةboundingRect
لتصبح عبارة عن معلمات تأتي معها قوسين متعددة الأقواس{}
وتحوي بداخلها البارامترات. في النسخة السابقة، كانت البارامترات تكون معروفة بواسطة الفاصلة,
. -
استخدام الثوابت المحسنة:
في Swift 3، تم تحسين الاستخدامات الشائعة للثوابت، مثلNSStringDrawingOptions.UsesFontLeading.union(.UsesLineFragmentOrigin)
، حيث أصبح من الممكن استخدامها بشكل أكثر وضوحًا باستخدام قوسين مربعين[]
. -
الاستبدال بين الطرق المبسطة:
بالإضافة إلى التغييرات السابقة، تم استبدال استخدام الطريقة المبسطةCGSizeMake
بطريقة جديدة أكثر تعبيرًا ووضوحًاCGSize(width:height:)
التي تتيح تعريف العرض والارتفاع بشكل أكثر سهولة.
هذه التغييرات تعكس تحسينات مستمرة في Swift مع كل إصدار جديد، مما يهدف إلى جعل اللغة أكثر قوة ووضوحًا وسهولة في الاستخدام.