หลังจากทำการ update Swift 2.2
ผลที่ได้คือ warning ใน code เพียบเลย !!
ดังนั้นจึงทำการอ่าน และ สรุปสิ่งที่เปลี่ยนกันหน่อยสิว่ามีอะไรบ้าง ?
ซึ่งพบว่า
- มีกลุ่มของ feature ที่มันเปลี่ยนไปแบบหน้ามือเป็นหลังมือ
- มีการเพิ่ม feature ที่ขาดหายไป
- มี feature ที่ถูก deprecated บางตัวก็ออกจะดูแปลก ๆ อีกด้วย
มันดูกันว่ามีอะไรบ้าง ?
ซึ่งสรุปมาจาก code ในงานที่ทำนิดหน่อย
เริ่มจากอย่างแรกเลยคือ ++ และ — (เอาที่สบายใจ)
เป็นสิ่งที่ประหลาดใจสุด ๆ
ซึ่งจะถูกนำออกจาก Swift 3.0 อย่างแน่นอน
โดยแนะนำให้ไปใช้ +=1 และ -=1 แทนนะ
ดังนั้นจึงมีผลทำให้ for loop แบบ C-Style ได้รับผลกระทบไปด้วย
แนะนำให้ใช้ loop over a range ซะ
ดังนี้
สำหรับการใช้งาน range ก็อย่าไปทำแบบตัวเริ่มต้นมากกว่าตัวสิ้นสุดนะ
ไม่งั้นจะเกิด Runtime error ( Compile ผ่านนะ )
แนะนำให้ใช้ method reverse() ซะ
ข่าวดีคือ 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 นั้น ๆ ได้
แก้ไขง่าย ๆ ด้วยการกำหนดค่าเริ่มต้นให้ตัวแปรเหล่านั้นซะ
ถ้าเราต้องการเขียน code ภาษา Swift หลากหลาย version ในไฟล์เดียว !!
ก็สามารถทำได้ด้วย
เนื่องจากได้เพิ่มการตรวจสอบ version ของ Swift ให้
ตัวอย่างเช่น
สำหรับชาว debugging กันบ้าง
ถ้าต้องการแสดงค่าของ
- ชื่อไฟล์
- หมายเลขบรรทัด และ column
- ชื่อ method/function
ก็เปลี่ยนไปใช้ # นำหน้าหมดเลย
ดังตัวอย่าง
สรุปเพียงเท่านี้ก่อนก็แล้วกัน
แต่จากเอกสารจะบอกว่าสิ่งที่เปลี่ยนแปลงไปนั้น
จะทำให้นักพัฒนาเขียน code ได้รวดเร็วขึ้น !!
ว่าง ๆ ลองไปอ่านเพิ่มเติมกันได้ที่ Swift Documentation นะ
รวมทั้ง Changelog ของ Swift 3.0 กัน