swift
หลังจากทำการ update Swift 2.2
ผลที่ได้คือ warning ใน code เพียบเลย !!

ดังนั้นจึงทำการอ่าน และ สรุปสิ่งที่เปลี่ยนกันหน่อยสิว่ามีอะไรบ้าง ?
ซึ่งพบว่า

  • มีกลุ่มของ feature ที่มันเปลี่ยนไปแบบหน้ามือเป็นหลังมือ
  • มีการเพิ่ม feature ที่ขาดหายไป
  • มี feature ที่ถูก deprecated บางตัวก็ออกจะดูแปลก ๆ อีกด้วย

มันดูกันว่ามีอะไรบ้าง ?
ซึ่งสรุปมาจาก code ในงานที่ทำนิดหน่อย

เริ่มจากอย่างแรกเลยคือ ++ และ — (เอาที่สบายใจ)

เป็นสิ่งที่ประหลาดใจสุด ๆ
ซึ่งจะถูกนำออกจาก Swift 3.0 อย่างแน่นอน
โดยแนะนำให้ไปใช้ +=1 และ -=1 แทนนะ

01

ดังนั้นจึงมีผลทำให้ for loop แบบ C-Style ได้รับผลกระทบไปด้วย
แนะนำให้ใช้ loop over a range ซะ
ดังนี้

02
สำหรับการใช้งาน range ก็อย่าไปทำแบบตัวเริ่มต้นมากกว่าตัวสิ้นสุดนะ
ไม่งั้นจะเกิด Runtime error ( Compile ผ่านนะ )
แนะนำให้ใช้ method reverse() ซะ

03

ข่าวดีคือ Array และ Slice มี method removeFirst() แล้วนะ

น่าจะทำให้สบายมากขึ้น

สามารถเปรียบเทียบข้อมูลใน Tuple แบบง่าย ๆ ได้ล่ะ

ทำให้การเขียน code สบายขึ้นมาก ๆ
ซึ่งก่อนหน้านี้ไม่สามารถทำการเปรียบเทียบข้อมูลแบบนี้ได้

อีกอันที่เจอมากับตัวเอง คือ Stringified selectors มันถูก deprecated แล้ว

โดยใน Swift 2.2 แนะนำให้เขียน #selector() แทนนะครับ
น่าจะเจอมากในส่วนของ UI เช่น Button
ต้องเขียนเป็น #selector(yourActionMethod())
ซึ่งถ้า method นี้ไม่มีจริง ๆ จะ compile ไม่ผ่านนะ

Initialized class ไม่ผ่าน !!

ทำการตรวจสอบตัวแปรต่าง ๆ ของ class ก่อนว่า
ถูกใช้งาน หรือ กำหนดค่าหรือไม่
ถ้าไม่จะ initialized class ไม่ผ่าน
ทำให้ไม่สามารถเรียกใช้งาน class นั้น ๆ ได้
แก้ไขง่าย ๆ ด้วยการกำหนดค่าเริ่มต้นให้ตัวแปรเหล่านั้นซะ

04

ถ้าเราต้องการเขียน code ภาษา Swift หลากหลาย version ในไฟล์เดียว !!

ก็สามารถทำได้ด้วย
เนื่องจากได้เพิ่มการตรวจสอบ version ของ Swift ให้
ตัวอย่างเช่น

สำหรับชาว debugging กันบ้าง

ถ้าต้องการแสดงค่าของ

  • ชื่อไฟล์
  • หมายเลขบรรทัด และ column
  • ชื่อ method/function

ก็เปลี่ยนไปใช้ # นำหน้าหมดเลย
ดังตัวอย่าง

สรุปเพียงเท่านี้ก่อนก็แล้วกัน

แต่จากเอกสารจะบอกว่าสิ่งที่เปลี่ยนแปลงไปนั้น
จะทำให้นักพัฒนาเขียน code ได้รวดเร็วขึ้น !!

ว่าง ๆ ลองไปอ่านเพิ่มเติมกันได้ที่ Swift Documentation นะ
รวมทั้ง Changelog ของ Swift 3.0 กัน

Tags: