หลังจากทำการ update Swift 2.2
ผลที่ได้คือ warning ใน code เพียบเลย !!
ดังนั้นจึงทำการอ่าน และ สรุปสิ่งที่เปลี่ยนกันหน่อยสิว่ามีอะไรบ้าง ?
ซึ่งพบว่า
- มีกลุ่มของ feature ที่มันเปลี่ยนไปแบบหน้ามือเป็นหลังมือ
- มีการเพิ่ม feature ที่ขาดหายไป
- มี feature ที่ถูก deprecated บางตัวก็ออกจะดูแปลก ๆ อีกด้วย
เริ่มจากอย่างแรกเลยคือ ++ และ -- (เอาที่สบายใจ)
เป็นสิ่งที่ประหลาดใจสุด ๆ ซึ่งจะถูกนำออกจาก Swift 3.0 อย่างแน่นอน โดยแนะนำให้ไปใช้ +=1 และ -=1 แทนนะ ดังนั้นจึงมีผลทำให้ for loop แบบ C-Style ได้รับผลกระทบไปด้วย แนะนำให้ใช้ loop over a range ซะ ดังนี้ สำหรับการใช้งาน range ก็อย่าไปทำแบบตัวเริ่มต้นมากกว่าตัวสิ้นสุดนะ ไม่งั้นจะเกิด Runtime error ( Compile ผ่านนะ ) แนะนำให้ใช้ method reverse() ซะข่าวดีคือ Array และ Slice มี method removeFirst() แล้วนะ
น่าจะทำให้สบายมากขึ้น [gist id="184c5d5240d436ccc252" file="movefirst.swift"]สามารถเปรียบเทียบข้อมูลใน Tuple แบบง่าย ๆ ได้ล่ะ
ทำให้การเขียน code สบายขึ้นมาก ๆ ซึ่งก่อนหน้านี้ไม่สามารถทำการเปรียบเทียบข้อมูลแบบนี้ได้ [gist id="184c5d5240d436ccc252" file="tuple.swift"]อีกอันที่เจอมากับตัวเอง คือ Stringified selectors มันถูก deprecated แล้ว
โดยใน Swift 2.2 แนะนำให้เขียน #selector() แทนนะครับ น่าจะเจอมากในส่วนของ UI เช่น Button ต้องเขียนเป็น #selector(yourActionMethod()) ซึ่งถ้า method นี้ไม่มีจริง ๆ จะ compile ไม่ผ่านนะInitialized class ไม่ผ่าน !!
ทำการตรวจสอบตัวแปรต่าง ๆ ของ class ก่อนว่า ถูกใช้งาน หรือ กำหนดค่าหรือไม่ ถ้าไม่จะ initialized class ไม่ผ่าน ทำให้ไม่สามารถเรียกใช้งาน class นั้น ๆ ได้ แก้ไขง่าย ๆ ด้วยการกำหนดค่าเริ่มต้นให้ตัวแปรเหล่านั้นซะถ้าเราต้องการเขียน code ภาษา Swift หลากหลาย version ในไฟล์เดียว !!
ก็สามารถทำได้ด้วย เนื่องจากได้เพิ่มการตรวจสอบ version ของ Swift ให้ ตัวอย่างเช่น [gist id="184c5d5240d436ccc252" file="checking.swift"]สำหรับชาว debugging กันบ้าง
ถ้าต้องการแสดงค่าของ- ชื่อไฟล์
- หมายเลขบรรทัด และ column
- ชื่อ method/function