Stack & Queue in Objective-C

วันนี้ผมต้องเขียนโปรแรกมโดยใช้ queue ผมก็พยายามหานะว่า มันใช้ class ไหน  แต่หายังไงก็หาไม่เจอ สุดท้ายแล้วก็ค้นพบว่า ในภาษา objective-c นั้นมี class จำพวก container หลายตัวให้เลือกใช้ ตั้งแต่ array , dictionary , set แต่กลับไม่มี stack และ queue

ก็ในเมื่อมันไม่มีให้ใช้ แล้วคำถามต่อไปคือ เราต้องเขียน เองใหม่ทั้งหมดเลยหรือ ?

คำตอบคือไม่ครับ เราไม่ต้องไปเขียน class  เหมือนกับ NSMutableArray , NSDictionary อะไรแบบนั้นเองทั้งหมด แต่สิ่งที่เราต้องทำก็คือ นำคุณสมบัติของภาษา objective-c มาใช้นั่นก็คือ class extend ครับ ถูกต้องแล้ว Categories !!!!

ถ้ายังไม่เคยใช้ หรือไม่รู้จักว่ามันคืออะไร ลองอ่าน http://www.macfeteria.com/2008/11/objective-c-programmming-extending-class/

Stack

stack เป็น container ชนิดหนึ่งที่มีลักษณะการทำงานคือ อะไรที่เข้าไปก่อน จะออกทีหลัง ก็เหมือนเอาหนังสือวางลงไปในกล่องทับกัน นั่นเหละครับ ถ้าอยากได้เล่มล่างสุดก็ต้องเอาเล่มบนสุดออกก่อน เอาละครับเรามาดู code กันเลยดีกว่าว่าเราเขียนมันได้ยังไง

Queue

queue ก็ไม่ต้องอธิบายอะไรมากครับ คือเรียงตามลำดับก่อนหลัง

จะเห็นได้ว่า เราสามารถใช้ categories เข้ามาช่วยเพิ่มความสามารถของ NSMutableArray ได้ง่ายๆมาก และเราก็ไม่ต้องไปเขียน stack หรือ queue เอง

4 thoughts on “Stack & Queue in Objective-C”

  1. ตัวอย่างที่ส่งมาให้ มี echo server ที่ให้ระบุ port ใช่ป่ะครับ
    แล้วอีกตัวเอาไว้ใช้ทำอะไรอ่าครับ ที่ให้ print certificate อะไรซักอย่าง

  2. iPhone ครับ

    อยากเขียน ให้ส่ง_รับกันให้ได้ก่อนครับ

    เพราะตอนนี้ ยังเปิด connection ยังไม่ได้เลยครับ
    ยัง set port กับ ip ยังไม่รุ้ว่าไปเซ็ตตรงไหนเลยครับ

  3. iPhone หรือว่า Mac App อะครับ
    คือถ้าเป็น Mac App เนี่ยเราจะใช้ CFNetwork ก็ได้ครับถ้าหากว่าเขียนโปรแกรมด้วย Carbon
    แต่ถ้าใช้ภาษา objective-c อยู่แล้ว cocoa มี framework พวก network ให้ใช้ครับ

    เครื่องเดียวจริงๆก็ทำได้นะครับ เราเขียน server , client บนเครื่องเดียวก็ได้
    แต่ว่าถ้าจะให้ดีต้องมีสองเครื่องครับ

  4. ขอนอกเรื่องนิสนึงนะครับ

    ถ้าอยากเขียน socket programming
    แต่มีmacเครื่องเดียว จะทดสอบยังไงดีครับ

    แล้ว ใช้ CFNetwork เขียนเอาหรอครับ
    พอมีข้อแนะนำไหมคับ

Leave a Reply