หนังสือเล่มแรกของผม “คู่มือเขียน iPhone App” ก็ได้ออกวางตลาดเรียบร้อยแล้ว ก็หวังว่าจะช่วยเป็นจุดเริ่มต้นเล็กๆ น้อยๆ สำหรับหลายๆ คนที่อยากจะหัดเขียนโปรแกรม หรือแอพ เพื่อใช้งาน iPhone, iPad, iPod touch กันได้บ้าง
หลังจากหนังสือเล่มนี้วางตลาดไปได้ไม่นาน ก็มี e-mail เข้ามาหาผม เพื่อขอ Code จากหนังสือเล่มนี้พอสมควร ซึ่งสิ่งที่ผมทำก็คือ ไม่ให้ Code ทันที แต่จะพยายามจะถามว่าติดปัญหาตรงไหน เพื่อจะได้ช่วยแก้ปัญหา พร้อมอธิบายเพิ่มเติมเท่าที่ทำได้ เพราะว่าแต่ละคนอาจต้องการคำอธิบายที่แตกต่างกันตามธรรมชาติ ดังนั้นหากผมได้รู้ถึงปัญหาของแต่ละคน ว่าติดตรงไหน หรือว่าอ่านหนังสือตรงไหนไม่ละเอียด ก็จะช่วยอธิบายให้ตรงจุดได้
บางครั้งที่ผู้อ่านหลายท่าน พิมพ์โค้ดตามหนังสือ และเกิด Error หรือ Warning ขึ้นมา ทั้งๆ ที่พิมพ์ตามตรงเป๊ะทุกตัวอักษรแล้ว และเมื่อเกิดเรื่องเช่นนั้นขึ้น บางครั้งผู้อ่านบางท่าน อาจจะเริ่มทึกทักว่าหนังสือผมผิด หรือหนังสือผมลืมโน่นลืมนี่ ฯลฯ
ผมขอชี้แจงอะไรบางอย่างตรงนี้ครับ โดยอ้างอิงตัวอย่างจาก e-mail ที่ผมตอบผู้อ่านผมบางท่าน (ขอสงวนชื่อผู้อ่านนะครับ ว่าผมตอบใคร)
กรณีแรก ผู้อ่านประสพปัญหาจากโค้ดในหน้า 157
การวางตำแหน่งต่างๆ ต้องประมวลความรู้เองจากหน้า 121 ครับ ผมเขียนว่า
“ก่อนจะใช้งานสิ่งใดๆ ต้องประกาศสิ่งนั้นก่อน” ดังนั้น …. (พร้อมกับบอกวิธี)
เป็นความตั้งใจของผู้เขียน ที่ต้องการให้ผู้อ่านประมวลความรู้เอง จากสิ่งที่ทำไปแล้วในบทก่อนๆ
ลำดับ Code ที่ปรากฏในหนังสือ สะท้อนลำดับความคิดของผมครับ ไม่ได้สะท้อนลำดับของโค้ดในไฟล์
การที่ผมเขียน Code หนึ่งๆ ทีหลัง ไม่ได้แปลว่าจะต้องปรากฏภายหลังในไฟล์ครับ เราอาจต้อง
ใส่ Interface ของมันไปก่อนใน .h หรือว่าอาจจะต้องเขียน private interface เสียก่อน หรือว่าอาจจะใช้
วิธีการประกาศไว้ก่อน ก็ได้
กรณีที่สอง ผู้อ่านประสพปัญหาจากโค้ดในหน้า 78
Code ที่คุณเขียน และบอกว่ามีปัญหา อยู่ในหนังสือหน้า 78 นะครับ
ลองย้อนไปอ่านดูในหน้า 64 ครับ ตั้งแต่บรรทัดแรกเลย ว่าผมเขียนว่าอะไร และผมมีตัวอย่างให้ดูแล้วด้วย (เรื่อง @synthesize)
ซึ่งจะว่าไป ก็สืบมาตั้งแต่ขั้นตอนการเขียนที่บอกไว้ตั้งแต่หน้า 59 :-)เป็นความตั้งใจของผมครับ ที่ผู้อ่านจะต้อง “นำความรู้ที่อ่านผ่านไปแล้ว และเห็นตัวอย่างไปแล้ว มาประมวลใช้เอง”
ทีนี้คงจะไม่มีทางลืม @synthesize สิ่งที่กำหนด @property เลยสินะครับ ดีกว่าให้พิมพ์ตามๆ ไปอย่างไม่รู้เรื่องอะไร
เพราะว่ามีหลายคนที่เคยเจอมา อ่านหนังสือไม่ละเอียด ไม่คิด จะดูแต่ code อย่างเดียว และพิมพ์ตามอย่างเดียว
ถ้า code ทำงานได้หมด ไม่เจอปัญหาจากการอ่านไม่ละเอียดและไม่คิดเลย ก็จะ take everything for a grant
(ขออภัย นึกภาษาไทยไม่ออก … ประมาณว่า มองข้ามโน่นนี่ นึกว่าเป็นเรื่องเล็กๆ) ทำให้แก้ปัญหาต่างๆ ไม่ได้ในที่สุดสิ่งที่คุณเจอ และการแก้ปัญหาของคุณ เป็นเจตนาของผมทีี่อยากให้เกิดขึ้นครับ
มาถูกทางแล้วครับ ยินดีด้วย
ดังนั้น เพื่อ Make Statement ให้ชัดเจนตรงนี้ ผมขอบอกอีกครั้งนะครับ (ซึ่งเป็นการเขียนซ้ำข้อความที่ผมเขียนไว้ในหน้า 14 ของหนังสือ ซึ่งหลายท่านอาจจะอ่านข้ามไปแบบไม่สนใจเท่าไหร่)
หนังสือเล่มนี้จะไม่มี “การรวมโค้ด” ของโปรแกรมเอาไว้ที่หน้าใดหน้าหนึ่ง ให้พิมพ์ตามหรือลอกเฉพาะส่วนของโค้ดได้ โดยไม่อ่านเนื้อหาและความคิดอันเป็นที่มาของโค้ด
นอกจากนี้ โค้ดหลายส่วนที่ซ้ำหรือคล้ายกับที่เคยผ่านมือกันมาแล้ว บางส่วนผู้อ่านจะต้องเขียนเพิ่มเติมเอง
ผมไม่ปฏิเสธครับ ว่าลักษณะการเขียนหนังสือของผมนั้น ได้รับอิทธิพลจากหนังสือต่างประเทศ ทั้งอเมริกาและญี่ปุ่น เป็นอย่างมาก
ผมเชื่อว่า นี่คือสิ่งที่ถูกต้อง ผมไม่ต้องการให้คนเขียนโปรแกรม หัดเขียนโปรแกรมอย่างฉาบฉวยและมักง่าย ไม่ใส่ใจรายละเอียดเล็กๆ น้อยๆ และที่สำคัญที่สุดคือ หัดเขียนโปรแกรมบนถนนที่ราบเรียบเกินไป ไม่พบปัญหาเล็กๆ น้อยๆ ที่ต้องประมวลความรู้พื้นฐานมาแก้เลย
หลายต่อหลายคน หัดเขียนโปรแกรมตามตัวอย่าง คอมไพล์ผ่าน ทำงานได้ ตามตัวอย่างเป๊ะๆ ก็หลงระเริง คิดว่าเข้าใจแล้ว ทำได้แล้ว พอเขียนจริง ต่อให้เป็นโปรแกรมง่ายๆ ไม่ต้องยาก (แค่เปิดไฟล์ นับคำในไฟล์ว่ามีกี่คำ ที่ผมชอบใช้เวลาสอนหนังสือที่ ม.ศิลปากร) ก็เริ่มต้นไม่ถูก พอเขียนแล้วเจอปัญหาเล็กน้อย ก็ไปต่อไม่เป็น เจอข้อความจาก Compiler ก็กลัว ฯลฯ
ขอให้ค่อยๆ พยายามๆ ครับ อ่านหนังสือให้ละเอียด ใช้เวลากับมันให้มากสักนิด เพื่อรากฐานที่มั่นคง
หนังสือผม ไม่เขียนหลอกผู้อ่านไปวันๆ ว่าใครก็สามารถเป็นนักพัฒนาโปรแกรมสำหรับ iPhone ได้ อย่างแน่นอน การที่จะให้ทำตามแบบ Copy & Paste แบบไม่ต้องคิด และได้โปรแกรมที่เหมือนจะทำงานได้นั้น ไม่ใช่สิ่งที่ผมเห็นด้วย เป็นสิ่งที่ฉาบฉวยและไม่ยั่งยืน ผมเชื่อว่า ไม่มีความรู้แบบฉาบฉวยแม้แต่บรรทัดเดียวในหนังสือเล่มนี้
และ … คาดเข็มขัดนิรภัยให้แน่นนะครับ เพราะว่าเมื่อพื้นฐานของทุกคนแน่นแล้ว “เล่ม 2” จะเร็วกว่านี้ หนักกว่านี้ ยากกว่านี้ แน่นอน เพราะจะเป็นสิ่งที่ผมทิ้งท้ายไว้ในบทสุดท้าย (บทที่ 16) แต่ถ้าไม่มีสิ่งที่เป็นความรู้ “ระดับสูงขึ้นไป” เลยล่ะก็ การเขียน App หลายตัวสำหรับ AppStore ปัจจุบันนั้นทำไม่ได้แน่นอนครับ
ออกแล้วเหรอ ยินดีด้วยครับ
เท่าที่อ่านจาก blog ค่อนข้างโฟกัสกลุ่มเป้าหมายไปที่คนที่พอมีพื้นฐานทางโปรแกรมมาบ้าง หรือไม่ก็ต้องอ่านหนังสือเป็นบ้าง แล้วทำไมไม่รวมทั้งก้อนไว้ที่ appendix ล่ะ เผื่อคนเขาตั้งใจจริง ขยันพิมพ์ แล้วค่อยๆศึกษาจากเอาท์พุทเอา จะได้ช่วยเขาได้ในระดับหนึ่ง ค่อยๆไต่ระดับก็ได้ แบบ サルでも分かる~シリーズ ไง
จริงๆ แล้วมี code ครบทุกบท ครบทุกส่วนครับ เพียงแต่ส่วนไหนที่พิมพ์ไปแล้ว จะไม่พิมพ์ซ้ำให้ เท่านั้นเอง ตรงนั้นต้องคิดได้เอง
เช่น ในตัวอย่างที่ N อาจมีดังนี้
– InterfaceFile.h
@property (nonatomic, retain) ObjectType *objectName;
– InterfaceFile.m
@synthesize objectName;
และได้อธิบายความหมายของทั้งสองตัวไปอย่างละเอียด ว่าการกำหนดทั้งสองตัวหมายถึงอะไร ทำไมเมื่อกำหนด property แล้วต้อง synthesize ฯลฯ
ทีนี้ในตัวอย่างที่ N+x (x > 0) จะมีแค่
– AnotherInterfaceFile.h
@property (nonatomic, retain) AnotherObjectType *helperObject;
ก็ต้องไป @synthesize เอง ซึ่งตรงนี้หลายคนไม่ได้ทำ ก็จะเจอปัญหา
ถ้ารวมทั้งก้อนไว้ที่ appendix หนังสือจะหนากว่านี้ประมาณ 100 หน้าเป็นอย่างน้อยครับ และ code ของละโปรเจ็ค โดยเฉพาะในบทหลังๆ จะมีส่วนซ้ำกันถึง 80-90%
ถ้าจะเอาเฉพาะ code ส่วนที่ต้องพิมพ์เพิ่มเอง ก็ไม่ถึง 100 หน้า แต่ก็ต้องมี code ที่มัน generate มาให้อยู่ดี ไม่งั้นก็จะกลายเป็นว่าไม่ครบอิีก ไม่รู้จะเอาไปใส่ตรงไหนอีก
สู้ให้เจอปัญหา และให้หัดแก้ปัญหาตั้งแต่พื้นฐานจะดีกว่าครับ ไม่งั้นตอนไปทำจริง ก็เจอปัญหาอยู่ดีน่ะแหละ
ตัวอย่างเช่น เมื่อวานผมเขียนโค้ดเอง ยังลืม synthesize เลย
เรียนถาม อ.เดฟ หน่อยครับ สำหรับคนที่ไม่มีพื้นด้านภาษาคอม และการโปรแกรมมิ่งเลย เพราะทำงานด้านอื่นๆ จะอ่านแล้วรู้เรื่องได้หรือเปล่าครับ หรือต้องไปศึกษาภาษาคอมต่างๆเองก่อนครับ พอดีเพิ่งทราบว่าหนังสือออก เลยยังไม่ได้ออกไปลองอ่านดูเลยครับ ขอบคุณครับ
เข้าใจเรื่องปริมาณหน้าหนังสือที่เพิ่มขึ้น 100 กว่าหน้า ก็หลายเพลทอยู่เหมือนกัน สำนักพิมพ์เองคงไม่ยอมให้ต้นทุนสูงขึ้นแน่ๆ แนะนำว่าอยากให้ลองดู feedback สักพักนึงก่อนดีกว่าแล้วค่อยสรุปว่าควรจะช่วยผู้อ่านเรื่องการ download source code หรือไม่ ถ้ามีโค้ดฉบับเต็มแล้วช่วยจุดประกายให้ผู้อ่านได้มากขึ้นและเดฟใช้เวลาในการตอบ email น้อยลงก็น่าจะยอม แต่ถ้าทำให้กลายเป็นพวกปะผุ ฉาบฉวยมากขึ้นก็คงต้องพิจารณาอีกที
ไว้ซื้อมาอ่านเมื่อไรแล้วจะกลับมา comment อีกนะครับ (^^
จริงๆ สำนักพิมพ์ต้องการให้อยู่ภายใน 300 หน้า ที่เขียน 340 นี่ก็ต้องต่อรองแล้วครับ ดังนั้นก็ต้องเลือกระหว่างใส่ code ลงไปให้หมด ซึ่งจะทำให้หนังสือมัน shallow มาก (แต่โค้ดเยอะ ประมาณว่า ถ้าลอกโค้ดนี้ลงไปให้หมด จะได้ผลลัพธ์แบบนี้ … ซึ่งคนส่วนมากชอบ) กับแบบนี้
Feedback แบ่งเป็น 2 กลุ่มครับ (ซึ่งคาดไว้อยู่แล้ว) คือ พวกที่ชอบ และพวกที่ไม่ชอบ ซึ่งเป็นตั้งแต่ตอนให้อ่าน draft แล้วครับ ซึ่งแบ่งเป็น 2 กรณีศึกษา
1. พวกที่ชอบ อ่านแล้วเข้าใจ เก็ท ทำตามได้ ทำต่อได้เลย พวกที่มีประสบการณ์เขียนโปรแกรมมาแล้ว อ่านหนังสือฝรั่ง (ซึ่งชอบเขียนแนวนี้) มาบ้าง และไม่มีปัญหากับการลองผิดลองถูก แต่อยากได้ความชัดเจน ว่าเค้ากำลังลองผิดลองถูกกับอะไร เบื้องลึกเป็นยังไง (พวก Advanced Beginner หรือ Competent ใน Expertise 5 ระดับของ Dreyfus)
2. พวกที่ไม่อ่านเนื้อหา หรืออ่านไม่ละเอียด อ่านแบบนิยาย (ผ่านๆ ไปเรื่อยๆ) ไม่คิด อาจจะเพราะความเคยชินมาว่าไม่สำคัญ แล้วก็หาโค้ดทำแล้วทำตามอย่างเดียว พวกนี้จะติดปัญหาทำตามไม่ได้ เพราะว่าโค้ดทุกอย่างในหนังสือเล่มนี้ ถูกออกแบบมาให้ “ถ้าอ่านเฉพาะโค้ด เอาไปทำอะไรไม่ได้ ไม่มีทางเข้าใจ” นั่นคือ โค้ดเป็นส่วนหนึ่งของเนื้อหา และเป็นผลลัพธ์ของการคิด และการใช้ความรู้ ถ้าไม่เก็ทหรือเข้าใจเหตุ ก็จะเอาผลลัพธ์ไปใช้ไม่ได้ มากกว่า “โค้ดเป็นเหตุ แล้วการอธิบายโค้ดเป็นผล” เหมือนหนังสือหลายเล่ม
ซึ่งในกลุ่มที่ 2 ก็จะแบ่งเป็น 2 พวกอีก คือ
2.1 พวกที่ลองผิดลองถูก กลับไปอ่านเนื้อหา แล้วลองใหม่เรื่อยๆ จนทำได้ (พวก Novice ที่มีโอกาสเป็น Advanced Beginner; ตามความเชี่ยวชาญ 5 ระดับของ Dreyfus)
2.2 พวกที่เลิกลองผิดลองถูก ขอผลลัพธ์ที่ถูกต้อง เพื่อเอาไปทำตาม และบอกว่าศึกษา (ลอกผลลัพธ์ แต่ไม่เอาวิธีคิด หรือความเข้าใจ) ซึ่งเป็นพวก Novice ที่จะ Stay Novice
ผมสนใจพวกกลุ่ม 1 และ 2.1 ครับ นั่นคือกลุ่มเป้าหมายของหนังสือเล่มนี้
ผมไม่ขอเป็นส่วนหนึ่งของกระบวนการเรียนรู้ที่ฉาบฉวย แม้ว่ามันจะทำให้ผมโดนด่า และหนังสือไม่ Mass เท่าที่ควร (ไม่งั้นผมคงจะเขียนหนังสืออีกประเภทไปแล้ว คือพวก For Dummies ที่มีแนวคิดแบบ “ลอกนี่สิ ตามนี้เลยนะ แล้วจะได้ผลแบบนี้ เห็นมั้ย ทำได้แล้ว”)
มีเรื่องน่าดีใจเล่าให้ฟัง ในตอนที่สำนักพิมพ์มาคุยตอน draft สุดท้าย หลังจากเอาไปให้ทีมโปรแกรมเมอร์ของเขา ที่เขียน iOS ไม่เป็น ลองศึกษาดู เอาหนังสือมาพร้อมกับ comment ที่บอกว่า “ตรงนี้ขาดอันนี้ๆๆ ไป น่าจะเขียนเพิ่มแบบนี้ๆๆ”
ผมถามกลับว่า “แล้วรู้ได้ยังไงว่าต้องเขียนเพิ่มแบบนี้” คำตอบคือ “ทำตามแล้วเกิด error ก็ลองแก้ๆ จจากการอ่านจากที่อาจารย์เขียนในบทก่อน เห็นว่าต้องใช้ แต่ตรงนี้มันไม่มี”
ผมตอบกลับเลย “นั่นแหละครับ เจตนาที่แท้จริง”
และ “ถ้าลอกตามแล้วรันผ่านเลย ผมเชื่อว่าตอนนี้ทีมโปรแกรมเมอร์ของพี่ก็ยังไม่รู้ว่าตรงนั้นมันสำคัญ และใช้ยังไง ปัญหาเกิดจากอะไร ฯลฯ”
รอเล่มสองอยู่นะครับ :)
ผมพยายามอ่านพลิกไปมาหลายรอบ จนหนังสือจะขาด ยอมรับหนังสือดี
แต่ลีลาการเขียน เหมือนสอนนักเรียนในห้องมากกว่า แบบนี้ ผู้อ่านที่มีพื้นไม่มากอย่างผม
ติด Error แล้วไปต่อไม่ได้ ทำให้ท้อ คือมันไม่รู้ว่าจะแก้ไขตรงไหน
บางทีในหนังสือบอกให้ นำ Code จากบทก่อนๆมาใช้ ซึ่ง Code ถูกแก้ไขไปเรื่อยๆ
แต่ตอนนำเข้าไปในโปรเจคใหม่ นำเข้าไปไม่หมดและบางทีมี Method ที่เกินมาหรือขาดไป
ทำให้สับสนเหมือนกัน มันไม่เหมือนกับอยู่ในห้องเรียนที่พอติดปัญหาก็ถามผู้สอนได้โดยตรง
ผมยอมรับว่า ผมใหม่กับเรื่องนี้มากแต่อยากรู้ พยายามอยู่นานครับ
ตอนนี้ ก็ยังติดอยู่ที่หน้า 157 นึกโมโหคนเขียนอยู่เหมือนกัน ว่า ทำไมไม่บอกให้ละเอียด เข้าใจเจตนาครับว่า ต้องการให้ศึกษาลองผิดลองถูกกันเอาเอง โดยมีหนังสือเป็นแนวทาง แต่ถ้ามันน้อยเกินไปก็
ทำให้ท้อใจครับ ผมอ่านมาทำตามไปสองวันติดกันแล้วครับ ยังไม่สำเร็จ ขอบคุณสำหรับ ความรู้ที่ให้ครับ
ต้องไล่อ่านดีๆ ครับ การเจอ error เป็นเรื่องปกติ และการหัดแก้ error ตั้งแต่ตอนหัดเขียนเป็นสิ่งจำเป็นมากครับ และเมื่อเราทำงานไปสักพัก เราจะเจอกับ library/framework เต็มไปหมด ที่มี document น้อยมาก ต้องนั่งงมเอาเองตั้งแต่ต้น
ผมยังเชื่อว่ามันไม่น้อยเกินไป (ผมให้ Code กว่า 90% สำหรับแต่ละโปรเจ็ค มีเพียงประมาณ 10% เท่านั้นที่ต้องพิมพ์เอง)
เพียงแต่ความพยายามของคุณ และการทำความเข้าใจของคุณ น้อยเกินไปหรือเปล่า? ระยะเวลา (กี่วัน) ไม่ใช่ตัวตัดสินที่ดีสำหรับสิ่งนี้นะครับ
ผมให้ e-mail ติดต่อไว้แล้วในหนังสือ และพยายามตอบทุกเมล์ อาจจะขาดไปบ้าง ตอบไม่ทันใจบ้าง และตอบไม่ได้ “ดังใจ” คนถามบ้าง ถ้าเคยเมล์มาแล้ว แต่ผมยังไม่ได้ตอบไป รบกวนเตือนก็จะเป็นพระคุณนะครับ (แต่จากการตรวจสอบเบื้องต้น พบว่าไม่เคยมีเมล์จากคุณครับ ถ้าเคยส่งมาอาจจะเกิดปัญหาในการส่งครับ)
หนังสือดีมากเลยครับ เห็นในแผงวันแรกก็จัดเลย เพิ่งเคยอ่านหนังสือเขียนโปรแกรมภาษาไทยที่อธิบายละเอียดและใจเย็นมากๆ แต่ยังมึนๆ objective-c อยู่ ทำไม apple ไม่ทำ syntax สวยงามแบบจาวาน้อ :)
ปล. อยากให้มีหน้ารวบรวมคำผิดในหนังสือเพื่อจะได้ไม่ต้องงมโข่งนานเกินควรครับ
ผมว่า syntax objective-c มันสวยออก ตรงกันข้าม ผมรู้สึกว่า java ไม่สวย :-)
มันเป็นจิตวิทยาเรื่องความสวยงามครับ นักออกแบบท่านหนึ่งเคยบอกผมว่า “you read best what you read most” เราอ่านอะไรเยอะ อยู่กับอะไรเยอะ เราจะรู้สึกว่าสิ่งนั้นสวย (เหมือนที่เราเจอความเกาหลีๆ ล้างตากันอยู่ทุกวัน)
เรื่องรวบรวมคำผิด คิดไว้อยู่แล้วครับ เพราะว่ามีที่ผิดหลายจุดเหมือนกัน แต่ยังไม่มีโอกาสทำเลยครับ
ไปอุดหนุนมาแล้ว หนังสือดีมากครับ อยากทราบว่าอาจารย์รวิทัตมี plan จะเขียนหนังสือเกี่ยวกับ objective-c โดยเฉพาะรึป่าวครับ เพราะไม่เคยเห็นหนังสือที่สอนเกี่ยวกับ objective-c ที่เป็นภาษาไทยเลย ตัวผมเองพยายามอ่าน text ภาษาอังกฤษแล้ว อาจจะเป็นเพราะผมไม่ค่อยเก่งในภาษาอังกฤษ เลยรู้สึกอ่านยังไงก็ไม่ได้เข้าใจแบบเต็มๆเหมือนที่อ่านหนังสือของอาจารย์เลยครับ (รู้สึกในใจเลยครับเหมือนที่อาจารย์กล่าวไว้ในหนังสือเลยว่า บางทีก็รู้สึกอิจฉาฝรั่งที่มีหนังสือดีๆให้อ่านมากมาย) มีข่าวคราวอะไรอัพเดทให้ฟังบ้างนะครับ ขอบคุณครับ
ขอบคุณมากเลยค่ะที่ทำหนังสือดีๆออกมา :)
หนูปรับปรุงแอพฯ ตามคำแนะนำในหนังสืออาจารย์แล้วใช้งานได้ดีขึ้นเยอะเลยค่ะ
(จากที่ปกติ กดสองสามทีแล้วก็เด้งออก – -)
ทำให้เข้าใจโปรแกรมว่าควรจะต้องทำอะไรก่อน อะไรหลัง
และที่สำคัญเรื่อง release alloc retain กระจ่างมากค่ะ (ชอบๆ ^^)
ปล. แอพฯที่หนูทำขึ้นแอพสโตร์ด้วยค่ะ ^^ ของฟรีแฮปค่ะ http://www.freehap.com
ไม่เหมาะสำหรับมือใหม่นะครับ เพราะอาจารย์ผู้แต่งวาง bug ไว้ทุกบท เจอทั้ง bug ที่พิมพ์ผิดเอง bug ที่อาจารย์วางไว้ อ่านจบแล้ว run ผ่านทุก app ยิ่งกว่าฝ่าด่าน 18 มนุษย์ทองคำวัดเส้าหลิน ครับ ตอนนี้อ่านจบแล้วประมาณบทละ3รอบ พิมพ์ตามประมาณบทละ 2 รอบ เยอะสุด 6 รอบกว่าจะผ่าน เร็วสุดก็ 1 อาทิตย์ run ผ่าน 1 ตัวอย่าง ตอนนี้ run app ผ่านเกือบครบแล้วครับ ถ้าอาจารย์อยู่ข้างๆคงโดนบ่นจนหูชาแน่ๆ สรุปว่า หนังสือเล่มนี้ทั้งรักทั้งเกลียดมากๆครับ
@James
แปลว่ามาถูกทางครับ
ถ้าคุณไม่ทำแบบนั้น และต้องการเขียนโปรแกรมโดยไม่เคยเจอปัญหาอะไรเลย ไม่เคยหัดแก้ปัญหาอะไรเลย ผมรับรองว่าคุณเขียนโปรแกรมไม่มีวันเป็นครับ
อ่อ ขอแก้นิดหน่อย มันไม่ใช่ “Bug” ที่ผมวางไว้นะครับ เพราะว่าผมไม่ได้วาง Bug อะไรเอาไว้เลย โปรแกรมที่คอมไพล์ไม่ผ่าน เพราะโค้ดไม่ครบ มันไม่ใช่ Bug ครับ Bug คือส่วนของโค้ดที่คอมไพล์ผ่าน ทำงานได้ แต่ทำงานผิด
มันเป็นส่วนของโค้ดที่ทำงานไม่ได้ หากไม่เขียนอะไรเพิ่มเติมเอง (ซึ่งเป็นสิ่งที่เขียนผ่านมาแล้วทั้งนั้น) โดยความจงใจของผมครับ
ไม่ทราบยังมีโค้ดอยู่ไหมครับ แจ่งเมลตามหนังสือแล้วไม่มีคนตอบครับ
download ที่ http://www.code-app.com/book_1_code/CH2-14.zip เลยครับ
เพิ่งจะตรวจสอบ mail โดนลบออกจากเครื่องไปโดยอุบัติเหตุครับ (แต่ยังมีอยู่บน server) ขออภัยด้วยในความไม่สะดวก
ครับ แล้ว มีcode ส่วนที่เขียนเพิ่ม ที่ว่าจะทำเล่ม2แล้วเปลี่ยนใจ แต่ลงไว้ในเว็บไหมครับ ที่มี3บทหนะครับ ถ้าจำไม่ผิด พอดีทำตามแล้วติดบทสุดท้ายครับ เรื่องที่เกี่ยวกับ movie
ไม่ได้เก็บ code ส่วนนั้นไว้เลยครับ
ToT ไม่เป็นไรครับ เสียดาย แหะๆ เดียวผมพยายามงมต่อเองครับ ^^