สำหรับการพัฒนา twitter client ด้วย Cocoa ตอนแรกคิดว่าอาจต้องเหนื่อยหน่อย แต่โชคดีที่มี library ชื่อ MATwitterEngine (เขียนด้วย Objective-C) ซึ่ง application ชื่อดังอย่าง Twitterific ก็นำ library ตัวนี้ไปใช้เช่นกัน
ใช้ SVN checkout ได้ที่ http://svn.cocoasourcecode.com/MGTwitterEngine/
ในนั้นจะมีโปรเจ็คตัวอย่างให้เราทดลองเล่นดู ลอง compile และรันพบว่าใช้งานได้จริงๆด้วย! ที่สำคัญยังโชคดีที่มี README.txt ให้อ่านและข้างในยังบอกวิธีนำ library ตัวนี้ไปใช้งานบน iPhone อีกด้วย แต่โชคไม่ดีที่แม้จะทำตามคำแนะนำแล้วก็ยังไม่สำเร็จอยู่ดี
หลังจากทำตามคำแนะนำแล้วโดน compiler ด่ามามากมาย วิธีป้องกันการโดนด่าให้ทำตามขั้นตอนต่อไปนี้
หมายเหตุ** ระหว่างทางอาจต้องตามหา yajl และ CMake ด้วย
1. หลังจากเราสร้าง iPhone app project เสร็จแล้ว ให้เปิดโปรเจ็คตัวอย่างที่ได้มาแล้วลาก folder ชื่อ MGTwitterEngine มาวางไว้ในโปเจคที่จะใช้ library ตัวนี้
2. กด alt+command+E จากนั้นใน tab General ให้เพิ่ม linked library ชื่อ libxml2.dylib เข้าไปในโปรเจ็ค
3. เพิ่ม header search path เข้าไปดังนี้
$SDKROOT/usr/include/libxml2
4. เอาไฟล์ที่อยู่ใน /usr/local/include/yajl/ ทั้งหมดมาวางไว้ในโปรเจ็ค
5. download ไฟล์นี้ compiled YAJL static library for iPhone จากนั้น extract เลือกเอาไฟล์ชื่อ libYAJLIPhone.a มาใส่ใน Frameworks ของเรา
6. ลอง compile และรันโปรเจ็ค จะพบว่าโดนด่ากลับมามากมาย ข้อหาไม่รู้จัก <yajlyajl_parse.h> ให้เราตามไปที่เกิด error ขึ้นแล้วแก้เป็น "yajl_parse.h" จากนั้นทดลอง compile แล้วรันใหม่
7. โดนด่ากลับมาอีกรอบ แต่คราวนี้แค่ 2 ที่ เกี่ยวกับการใช้ yajl_alloc ว่าเราใส่ arguments ไม่ถูกต้อง ให้เราตามไปที่ error แล้วแก้จาก
เป็น
และแก้จาก
เป็น
8. เปิดไฟล์ MGTwitterEngineGlobalHeader.h ให้แก้
เป็น
9. ทำตาม code ตัวอย่างที่ MGTwitterEngine มาลองทำตาม โดยกำหนด MGTwitterEngineDelegate และ implement delegate method ของมันให้เรียบร้อย จากนั้นลองส่ง tweet ดูพบว่าใช้งานได้แล้ว!
ที่มา: Setting up MGTwitterEngine with YAJL 1.0.6 for iPhone development
อาจต้องการ: MGTwitterEngine for Iphone SDK errors,
Related Link from Roti
ใช้ SVN checkout ได้ที่ http://svn.cocoasourcecode.com/MGTwitterEngine/
ในนั้นจะมีโปรเจ็คตัวอย่างให้เราทดลองเล่นดู ลอง compile และรันพบว่าใช้งานได้จริงๆด้วย! ที่สำคัญยังโชคดีที่มี README.txt ให้อ่านและข้างในยังบอกวิธีนำ library ตัวนี้ไปใช้งานบน iPhone อีกด้วย แต่โชคไม่ดีที่แม้จะทำตามคำแนะนำแล้วก็ยังไม่สำเร็จอยู่ดี
หลังจากทำตามคำแนะนำแล้วโดน compiler ด่ามามากมาย วิธีป้องกันการโดนด่าให้ทำตามขั้นตอนต่อไปนี้
หมายเหตุ** ระหว่างทางอาจต้องตามหา yajl และ CMake ด้วย
1. หลังจากเราสร้าง iPhone app project เสร็จแล้ว ให้เปิดโปรเจ็คตัวอย่างที่ได้มาแล้วลาก folder ชื่อ MGTwitterEngine มาวางไว้ในโปเจคที่จะใช้ library ตัวนี้
2. กด alt+command+E จากนั้นใน tab General ให้เพิ่ม linked library ชื่อ libxml2.dylib เข้าไปในโปรเจ็ค
3. เพิ่ม header search path เข้าไปดังนี้
$SDKROOT/usr/include/libxml2
4. เอาไฟล์ที่อยู่ใน /usr/local/include/yajl/ ทั้งหมดมาวางไว้ในโปรเจ็ค
5. download ไฟล์นี้ compiled YAJL static library for iPhone จากนั้น extract เลือกเอาไฟล์ชื่อ libYAJLIPhone.a มาใส่ใน Frameworks ของเรา
6. ลอง compile และรันโปรเจ็ค จะพบว่าโดนด่ากลับมามากมาย ข้อหาไม่รู้จัก <yajlyajl_parse.h> ให้เราตามไปที่เกิด error ขึ้นแล้วแก้เป็น "yajl_parse.h" จากนั้นทดลอง compile แล้วรันใหม่
7. โดนด่ากลับมาอีกรอบ แต่คราวนี้แค่ 2 ที่ เกี่ยวกับการใช้ yajl_alloc ว่าเราใส่ arguments ไม่ถูกต้อง ให้เราตามไปที่ error แล้วแก้จาก
_handle = yajl_alloc(&callbacks, &cfg, self);
เป็น
_handle = yajl_alloc(&callbacks, &cfg, nil, self);
และแก้จาก
yajl_free_error(errorMessage);
เป็น
yajl_free_error(nil, errorMessage);
8. เปิดไฟล์ MGTwitterEngineGlobalHeader.h ให้แก้
#define YAJL_AVAILABLE 0
เป็น
#define YAJL_AVAILABLE 1
9. ทำตาม code ตัวอย่างที่ MGTwitterEngine มาลองทำตาม โดยกำหนด MGTwitterEngineDelegate และ implement delegate method ของมันให้เรียบร้อย จากนั้นลองส่ง tweet ดูพบว่าใช้งานได้แล้ว!
ที่มา: Setting up MGTwitterEngine with YAJL 1.0.6 for iPhone development
อาจต้องการ: MGTwitterEngine for Iphone SDK errors,
Related Link from Roti