ลองใช้ Struct + Generic Types กับ UITableView

พอดีนั่งดู Vdo WWDC 16 Getting Started with Swift ในช่วงที่ Apple พูดถึง Generic Types เขาเลยยกตัวอย่าง การใช้งาน Struct + Generic Types ไปใช้จัดการข้อมูลที่จะเอามาโชวบน UITableView เลยเกิดแรงบรรดาลใจในการเขียน Blog นี้ขึ้น

Screenshot 2016-06-19 20.24.29

หลังจากได้ยิน Apple แนะนำให้ใช้ Struct กับ UITableView ก็เลยไปลองหาใน StackOverFlow ดูว่า เขาใช้อะไรกัน ในสมัยก่อน ก็ไปเจอ Topic นึง

objective c – What would be a good data structure for UITableView

ซึ่ง สมัยก่อน เราอาจจะทำ คล้ายๆแบบนี้
Screenshot 2016-06-19 20.27.07

ซึ่งมันก็โอเคในระดับนึง แต่อาจจะอ่าน ยากไปสักนิดนึง

เราลองมาดู ตัวอย่าง Struct + Generic Types ดู

เริ่มต้นจาก Struct ที่ Apple ยกตัวอย่าง โดย name เราจะเอาไปใช้สำหรับ Section Header และ items จะเป็นข้อมูลของแต่ละ Row

Screenshot 2016-06-19 20.28.50

ใน ViewController ของเรา ก็ลองสร้าง Struct แล้วเก็บไว้ใน Array Data

Screenshot 2016-06-19 20.29.00

เรา จะแยก UITableViewDataSource ออกมาอีก extension นึง เพื่อแบ่งแยก Code ให้อ่านง่าย สามารถอ่าน Code Style Guide

ซึ่งใน DataSource เราสามารถ เรียกใช้ข้อมูลได้จาก  Struct ที่เราสร้างขึ้นได้อย่างง่าย และ มันทำให้ Code เราอ่านง่ายขึ้น ถ้าเราต้องการความสามารถที่มากขึ้น เราสามารถสร้าง Enum เพื่อมาแบ่ง Section Type ได้

Screenshot 2016-06-19 20.29.08

เราก็จะได้ UITableView ที่มี Section Header และ Row ที่จัดการข้อมูลด้วย Struct ทำให้เราน่าจะจัดการ Code และทำให้มันอ่านมันง่ายขึ้น

Screenshot 2016-06-19 20.37.47

สำหรับใครที่อยากอ่านมากขึ้นสำหรับเขียน Code โครงสร้างคล้ายๆแบบนี้ สามารถดูอีกตัวอย่างเพิ่มเติมได้ที่นี้

Advertisements
ลองใช้ Struct + Generic Types กับ UITableView

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s