Static Lib

ห่างหายจากการเขียน tutorial ไปนานพอสมควร เมื่อวันก่อนมีคนมาถามผมใน Forums ว่าสร้างและใช้ Lib อย่างไร วันนี้เลยเขียน Blog เลยดีกว่า สำหรับใครที่ยังไม่รู้ว่า Static Lib คืออะไร ผมอธิบายง่ายๆว่ามันคือ การรวมชุดคำสั่ง เข้าไว้ด้วยกัน อาทิเช่น เราเขียนโปรแกรมคำนวน ด้วยสูตร ต่างๆที่ซับซ้อน และเราก็ต้องการใช้สูตรเหล่านี้ กับโปรแกรมอื่นๆ วิธีการก็คือ copy code มาแล้วก็ paste ลงไป ซึ่งมันก็ไม่สะดวก เพราะบางที code มันมีหลายพัน บรรทัด เราจึงเขียนมันออกมา เป็น Library และข้อดีของ Library คือหลังจากการ Compile ไปแล้ว เราสามารถให้คนอื่นเอาไปใช้ต่อ โดยที่ใช้แค่ .h และ lib เท่านั้น ตัว Source ไม่ต้องเอาไป

วันนี้สิ่งที่จะเขียนกันก็คือ Library ง่าย เอาละครับ ลงมือกันเลยดีกว่าเพื่อเป็นการไม่เสียเวลา

Static Lib Project

ก่อนอื่นเลยเราสร้าง Project ใหม่ขึ้นมาให้ชื่อว่า MyLib โดยเราเลือก Project Template ให้เป็น แบบ Static Library ดังรูป

static1

หลังจากนั้นก็จะเห็น Project ประมาณดังรูป

static2

จะเห็นว่า Project นั้นไม่ได้ให้ File อะไรมามากมาย เท่าการสร้างโปรเจคแบบอื่นๆเลย เอาละ ! ลำดับต่อไปคือ เพิ่ม Class เข้าไปยัง Project ของเรา  โดยผมให้ชื่อว่า MyClass  หลังจากเพ่ิม Class เข้าไปแล้วก็จะเห็น File เข้ามาดังรูป

static2-1

ต่อไปเราก็จะเขียน Code กัน

ในส่วนของ implement ก็มี code ง่ายๆดังนี้

จาก code ข้างบน คือ ผมมี Class ที่ชื่อว่า MyClass โดยมีฟังก์ชั่น ที่ชื่อ sayHello แค่ฟังก์ชั่นเดียว โดยในฟังก์ชั่นนี้ก็คือ ส่งคำว่า Hello World กลับมานั่นเอง

หลังจากนั้นก็ Compile ครับ เมื่อ Compile แล้วจะเห็น LibMyLib.a ดังรูป

static3

ลำดับต่อไปคือ เอามาใช้  การที่เราจะเอา Lib มาใช้นั้นสิ่งที่ต้องการมีอยู่สองอย่างครับคือ

  • Compile Lib ( File นามสกุล .a )
  • Header ( File นามสกุล .h )

จากรูปข้างบน จะเห็น path ของ lib ที่เราสร้างขึ้นมาครับ เราก็ไป  copy เอามาไว้ยัง Folder ใหม่ พร้อมกับ File .h

static6

ส่วนไฟล์อื่นๆ หลังจากการ Compile แล้วก็ไม่จำเป็นครับ

ต่อไปคือสร้าง โปรเจคที่ใช้งาน Lib ของเรา

Say Hello Project

เราก็สร้างโปรเจค ขึ้นมาใหม่ ผมตั้งชื่อว่า DemoLib เป็นแบบ View Base ดังรูป

static4

เมื่อเราสร้างเรียบร้อยแล้ว ต่อไปคือ เอามาใช้ .. สิ่งที่ต้องทำต่อไปคือเอา 2 Files ที่ได้จากโปรเจค แรก เข้ามายัง โปรเจคใหม่ โดยกด Click ขวาที่โปรเจค แล้วก็เลือก Add ครับดังรูปครับ

static5

เมื่อกด Add >> Existing Files …  แล้วจะเห็น หน้าต่างดังรูป ที่ผม ได้ขีดเส้นไว้คือ ถ้าหากเราเลือก option นี้มันจะ copy file มายังโปรเจคของเราเลย อันนี้ก็แล้วแต่สะดวกนะครับ ว่าจะให้มัน copy file มาหรือไม่ต้อง

static7

เมื่อเสร็จเรียบร้อยแล้ว ก็จะเห็นว่ามี File เข้ามายังโปรเจคของเราแล้ว ดังรูป

static8

ต่อไปครับ ลงมือเขียน code กัน

โดยที่โปรแกรมที่เราจะเขียน ก็ง่ายๆครับ คือกด ปุ่ม แล้วให้ Lable มันเปลี่ยนเป็นคำว่า Hello World เท่านั้นเอง

จาก ข้างบนเราประกาศ Outlet แค่ UILabel กับ Action ที่ชื่อ clickSayHello

ส่วน implement นั้น จะสังเกต เห็นว่าเรา ได้เรียนใช้ [MyClass sayHello]; ซึ่งเป็น Library ที่เราได้สร้างมานั่นเอง โดยที่ฟังก์ชั่นนี้ก็คือ ส่ง String กลับมาเป็นคำว่า Hello World นั่นเอง
และสุดท้าย ก็ออกแบบหน้าตาของโปรแกรมด้วย interface builder ครับ แล้วเราก็เชื่อม Action/ Outlet ให้เรียบร้อยดังรูป

static9

เท่านี้ก็เป็นอันเสร็จแล้ว เมื่อเรา compile / run ก็จะเห็นหน้าตาโปรแกรมดังรูป เมื่อกด Say Hello คำว่า Label ก็จะเปลี่ยนเป็นคำว่า Hello World ครับ

static10

สำหรับวันนี้ ก็เป็น tutorial ง่ายๆ แต่รับรองว่า มีประโยชน์ แน่ๆครับ ติชม ยังไง ก็ เม้นกันมาได้ครับ

2 thoughts on “Static Lib”

  1. มารับรู้ตามที่แนะนำครับ ขอขอบพระคุณมากๆอีกทีนะครับ 🙂

Leave a Reply