Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

สิ่งที่เปลี่ยนแปลงใน Swift 2.2 มีอะไรบ้างนะ ?

$
0
0

swift

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() แล้วนะ

น่าจะทำให้สบายมากขึ้น [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 นั้น ๆ ได้ แก้ไขง่าย ๆ ด้วยการกำหนดค่าเริ่มต้นให้ตัวแปรเหล่านั้นซะ 04

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

ก็สามารถทำได้ด้วย เนื่องจากได้เพิ่มการตรวจสอบ version ของ Swift ให้ ตัวอย่างเช่น [gist id="184c5d5240d436ccc252" file="checking.swift"]

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

ถ้าต้องการแสดงค่าของ
  • ชื่อไฟล์
  • หมายเลขบรรทัด และ column
  • ชื่อ method/function
ก็เปลี่ยนไปใช้ # นำหน้าหมดเลย ดังตัวอย่าง [gist id="184c5d5240d436ccc252" file="debug.swift"]

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

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

Viewing all articles
Browse latest Browse all 1997

Trending Articles