คำถามติดแท็ก ios

คำถามเกี่ยวกับปัญหาที่เกี่ยวข้องกับระบบปฏิบัติการ iOS ของ Apple โดยเฉพาะ (ไม่ว่าโดยตรงหรือโดยอ้อม)

15
นักพัฒนาซอฟต์แวร์ควรปฏิเสธข้อกำหนดที่เป็นไปไม่ได้อย่างไร [ปิด]
นี่คือปัญหาที่ฉันเผชิญ: อ้างจากผู้จัดการโครงการ: สวัสดี Spark ฉันกำลังมอบหมายงานให้คุณพัฒนากรอบงานที่สามารถใช้กับแอปพลิเคชั่น iOS ที่แตกต่าง นี่คือข้อกำหนด: มันควรจะสามารถตรวจสอบความหนาของนิ้วหัวแม่มือหรือนิ้วมือที่ใช้ในการจัดการ UI ด้วยข้อมูลนี้ทุกองค์ประกอบของ UI ที่ควรจะจัดและขนาดโดยอัตโนมัติ สำหรับนิ้วหัวแม่มือที่ใหญ่ขึ้นควรจัดวางองค์ประกอบใกล้กับกึ่งกลางของหน้าจอ สำหรับนิ้วโป้งที่เล็กกว่าควรจัดวางองค์ประกอบใกล้กับมุมของหน้าจอ สำหรับนิ้วโป้งขนาดใหญ่แบบอักษรทั้งหมดควรมีขนาดเล็กลง (เราสมมติว่าเป็นผู้ใหญ่ในกรณีนี้) สำหรับนิ้วโป้งขนาดเล็กอักษรทั้งหมดควรมีขนาดใหญ่กว่า (เราสมมติว่าคนที่อายุน้อยกว่าในกรณีนี้) สรุป: เฟรมเวิร์กนี้จำเป็นสำหรับการสร้างส่วนต่อประสานกับผู้ใช้ที่ใช้งานง่ายโดยทางโปรแกรม กรอบควรได้รับการพัฒนาในลักษณะที่เราสามารถใช้สำหรับโครงการได้มากเท่าที่ต้องการดังนั้นจึงต้องเป็นมิตรกับนักพัฒนามาก ฉันเป็นผู้พัฒนาที่ได้รับภารกิจนี้ดังนั้นคำถามของฉันมีดังนี้: ฉันจะอธิบายได้อย่างไรว่าข้อกำหนดเหล่านี้ไร้สาระเล็กน้อย? ฉันจะอธิบายได้อย่างไรว่าจะเป็นการดีกว่าที่จะให้ความสำคัญกับการพัฒนาโครงการจริง ฉันจะอธิบายได้อย่างไรว่าถ้าเป็นไปได้ฉันก็จะไม่แนะนำให้พัฒนาสิ่งนั้น? ฉันจะบอกว่าไม่มีโครงการนี้อย่างสุภาพอ่อนโยนและด้วยความเคารพได้อย่างไร? ฉันจะอธิบายได้อย่างไรว่าสำหรับนักพัฒนาซอฟต์แวร์ที่มีประสบการณ์ 3 ปีนี่อาจเป็นไปไม่ได้

6
จะหลีกเลี่ยง UITableViewController ขนาดใหญ่และเงอะงะบน iOS ได้อย่างไร
ฉันมีปัญหาเมื่อใช้รูปแบบ MVC บน iOS ฉันค้นหาทางอินเทอร์เน็ต แต่ดูเหมือนจะไม่พบทางออกที่ดีสำหรับปัญหานี้ UITableViewControllerการใช้งานหลายอย่างดูเหมือนจะค่อนข้างใหญ่ ตัวอย่างส่วนใหญ่ที่ฉันได้เห็นช่วยให้UITableViewControllerการดำเนินการและ<UITableViewDelegate> <UITableViewDataSource>การติดตั้งใช้งานเหล่านี้เป็นเหตุผลสำคัญว่าทำไมจึงUITableViewControllerเริ่มมีขนาดใหญ่ ทางออกหนึ่งที่จะสร้างการเรียนที่แยกต่างหากที่ดำเนินการและ<UITableViewDelegate> ของหลักสูตรการเรียนเหล่านี้จะต้องมีการอ้างอิงถึง<UITableViewDataSource> UITableViewControllerมีข้อเสียใด ๆ ในการใช้โซลูชันนี้หรือไม่? โดยทั่วไปฉันคิดว่าคุณควรมอบสิทธิ์การใช้งานให้กับชั้นเรียนอื่น ๆ "ผู้ช่วย" หรืออื่น ๆ ที่คล้ายกันโดยใช้รูปแบบตัวแทน มีวิธีใดในการแก้ปัญหานี้เป็นที่ยอมรับหรือไม่? ฉันไม่ต้องการให้แบบจำลองมีฟังก์ชั่นมากเกินไปหรือมุมมอง ฉันเชื่อว่าตรรกะควรอยู่ในคลาสตัวควบคุมเนื่องจากนี่เป็นหนึ่งในเสาหลักของรูปแบบ MVC แต่คำถามใหญ่คือ: คุณควรแบ่งตัวควบคุมของการใช้ MVC เป็นชิ้นส่วนที่จัดการได้อย่างไร (ใช้กับ MVC ใน iOS ในกรณีนี้) อาจมีรูปแบบทั่วไปสำหรับการแก้ปัญหานี้แม้ว่าฉันกำลังมองหาโซลูชันสำหรับ iOS โดยเฉพาะ โปรดยกตัวอย่างรูปแบบที่ดีสำหรับการแก้ไขปัญหานี้ โปรดระบุเหตุผลที่โซลูชันของคุณยอดเยี่ยม

2
MVCS - รุ่น Store View Controller
ฉันเพิ่งตัดสินใจที่จะเริ่มต้นเรียนรู้การพัฒนา iOS และเพื่อการนี้ฉันได้อ่านการเขียนโปรแกรม iOS: บิ๊กไร่ Nerd คู่มือ ในหนังสือเล่มนี้ผู้เขียนอธิบายรูปแบบการออกแบบMVCS - Model-View-Controller-Storeแนวคิดพื้นฐานว่าเนื่องจากแอปพลิเคชันจำนวนมากใช้ประโยชน์จากแหล่งข้อมูลภายนอกหลายแหล่งที่ทำให้ตรรกะคำขอในตัวควบคุมนั้นยุ่งเหยิงมากแทนที่จะเป็นผู้เขียน เสนอว่าการย้ายตรรกะคำขอทั้งหมดออกจากตัวควบคุมและไปยังวัตถุที่แยกต่างหาก ในระยะสั้นเพื่ออ้างหนังสือ Model-View-Controller-Store ทำให้ตรรกะคำขอเป็นวัตถุแยกต่างหากและเราเรียกวัตถุนี้ว่าร้านค้า (รูปที่ 28.4) การใช้ออบเจกต์ร้านค้าลดรหัสที่ซ้ำซ้อนให้น้อยที่สุดและลดความซับซ้อนของรหัสที่ดึงและบันทึกข้อมูล สิ่งสำคัญที่สุดคือมันย้ายตรรกะในการจัดการกับแหล่งข้อมูลภายนอกเป็นชั้นเรียนที่เป็นระเบียบเรียบร้อยด้วยเป้าหมายที่ชัดเจนและมุ่งเน้น รหัสนี้ทำให้เข้าใจง่ายยิ่งขึ้นซึ่งทำให้ง่ายต่อการบำรุงรักษาและตรวจแก้จุดบกพร่องรวมถึงแบ่งปันกับโปรแกรมเมอร์คนอื่น ๆ ในทีมของคุณ และ สิ่งที่ยอดเยี่ยมเกี่ยวกับร้านค้าอะซิงโครนัสคือแม้ว่าวัตถุจำนวนมากกำลังทำงานเป็นจำนวนมากในการประมวลผลคำขอการไหลของคำขอและการตอบสนองอยู่ในที่เดียวในคอนโทรลเลอร์ สิ่งนี้ทำให้เราได้รับประโยชน์จากโค้ดที่อ่านง่ายและแก้ไขได้ง่าย ฉันต้องการค้นหาเพิ่มเติมเกี่ยวกับรูปแบบนี้และเพื่อดูว่าคนอื่น ๆ อาจจะพูดถึงเรื่องนี้อย่างไร แต่ในขณะที่ค้นหาทางออนไลน์มีเพียงข้อมูลอ้างอิงเดียวที่ฉันพบได้ในหนังสือเล่มเดียวกันนั้น (เป็นชื่อที่รู้จักกันในชื่ออื่น) สำหรับฉันแล้วตรรกะของผู้เขียนดูเหมือนจะสมเหตุสมผลและดูเหมือนว่าเป็นการขยายตรรกะของรูปแบบ MVC ปกติ แต่อาจเป็นเพราะฉันไม่มีประสบการณ์มากกับรูปแบบ MVC ในทางปฏิบัติ (นอกเหนือจากการจู่โจมสู่การพัฒนา iOS ที่ฉันมี ประเภท MVV ที่ใช้แล้วที่มีbackbone.js (นั่นคือถ้าคุณพิจารณาว่าเป็น MVC ) ฉันหวังว่าอาจมีบางคนที่มีประสบการณ์มากกว่านั้นสามารถบอกได้ว่ามีข้อบกพร่อง / ปัญหาที่ชัดเจนเกี่ยวกับรูปแบบMVCSที่ฉันพลาดไปหรือไม่

1
Rest APIs - ความท้าทายเฉพาะสำหรับมือถือ
ฉันกำลังทำงานในโครงการแอพ iOS ใหม่ทางมือถือ การเปลี่ยนแปลงสถาปัตยกรรมบางอย่างกำลังเกิดขึ้นและปรากฎว่าเราจะต้องพึ่งพา API ส่วนตัวที่สร้างขึ้นเองซึ่งจะถูกใช้โดยแอพที่เรากำลังสร้างและลูกค้ารายอื่นเช่นเว็บไซต์ API ที่ถูกออกแบบตามสไตล์ Rest ของการดำเนินการ URI และ CRUD ที่เน้นทรัพยากรเป็นศูนย์กลางจับคู่กับกริยา HTTP สิ่งที่ชอบ: GET www.example.com/books DELETE www.example.com/books/482094 POST www.example.com/users/6793 ปัญหาคือว่ารูปแบบนี้มักจะนำไปสู่ความต้องการให้ไคลเอนต์มือถือทำการร้องขอมากมายสำหรับการโหลดหน้าจอแอปเดียวหรือจัดการการกระทำ UI ของผู้ใช้คนเดียว สิ่งนี้นำไปสู่แอปที่อยู่ในโหมดโหลดเป็นเวลา 8 วินาทีจนกว่าจะมีทุกอย่างที่จำเป็น แอพที่ช้าและไม่ตอบสนอง ไคลเอนต์มือถือมีข้อ จำกัด ที่ร้ายแรงเมื่อพูดถึงการเชื่อมต่อดังนั้นเราควรปฏิบัติตามกฎดังกล่าว: 1 หน้าจอ == 1 การเรียก API 1 บันทึก == 1 การเรียก API มีหลายสถานการณ์ที่สิ่งนี้ทำให้คุณมีหลักสูตรการชนด้วยหลักการออกแบบ REST เช่น: สมมติว่าแอปของคุณออฟไลน์อยู่หนึ่งวันและคุณจำเป็นต้องซิงค์กับฐานข้อมูลแบ็กเอนด์สี่ตารางและคุณต้องการโทรศัพท์เช่น www.example.com/sync_everything?since=2015-07-24 สมมติว่ามีหน้าจอที่ผู้ใช้สามารถแก้ไขวัตถุของเขาได้หลายอย่างเช่นการทำเครื่องหมายในรายการสิ่งที่ต้องทำ …
25 rest  api  ios  mobile 

4
Crossfade ที่สมบูรณ์แบบ
ฉันพบว่ามันยากที่จะอธิบายปัญหานี้ด้วยคำพูดซึ่งเป็นสาเหตุที่ฉันสร้างวิดีโอ (45 วินาที) เพื่ออธิบาย นี่คือตัวอย่างของคำถามโปรดดูได้ที่ Vimeo: http://vimeo.com/epologee/perfect-crossfade ปัญหาของการสร้าง crossfade ที่ไร้ที่ติหรือละลายสองภาพหรือรูปร่างได้เกิดขึ้นกับฉันในหลายสาขาในช่วงทศวรรษที่ผ่านมา ที่หนึ่งในการตัดต่อวิดีโอจากนั้นใน Flash animation และตอนนี้ในการเขียนโปรแกรม iOS เมื่อคุณเริ่ม googling มีหลายวิธีแก้ไข แต่ฉันต้องการแก้ปัญหานี้โดยไม่แฮ็คในครั้งนี้ สรุป: อะไรคือชื่อของเทคนิคหรือเส้นโค้งที่จะนำไปใช้ในการผสมบิตแมปบิตแมปกึ่งโปร่งใสสองสีหากคุณต้องการความโปร่งใสที่เกิดขึ้นให้ตรงกับต้นฉบับของทั้งสอง มีฟังก์ชั่น (ทางคณิตศาสตร์) ในการคำนวณค่าความโปร่งใส / ค่าอัลฟาบางส่วนที่จำเป็นในระหว่างการจางหรือไม่? จะมีภาษาโปรแกรมที่มีฟังก์ชั่นเหล่านี้เป็นที่ตั้งไว้คล้ายกับease in, ease outหรือease in outฟังก์ชั่นที่พบใน ActionScript หรือโกโก้? อัปเดต:นอกเหนือจากวิดีโอฉันได้ทำโครงการตัวอย่าง (ต้องใช้ Xcode และ iOS SDK) และโพสต์ลงบน GitHub มันแสดงภาพเคลื่อนไหวเดียวกับวิดีโอ แต่คราวนี้มีสี่เหลี่ยม: https://github.com/epologee/StackOverflow-Example-Code

11
เหตุใดจึงจำเป็นต้องทดสอบแอพ iPhone ของฉันบนอุปกรณ์ iPhone จริง
ฉันพัฒนาแอปพลิเคชั่นหนึ่งสำหรับ iPhone และตอนนี้ฉันต้องการมันบน App Store เพื่อน iOS ที่มีปัญหาทางด้านวิทยาศาสตร์ของฉันบอกให้ฉันทดสอบบนอุปกรณ์จริงเช่นบน iPhone ดังนั้นฉันจึงสงสัยว่าเหตุใดจึงจำเป็นต้องทดสอบแอพ iPhone ของฉันบนอุปกรณ์ iPhone จริง ๆ (แม้ว่าพวกเขา (Apple) จะให้ "simulator" ซึ่งใกล้เคียงกับอุปกรณ์ของฉันหรือไม่
23 testing  iphone  ios 

7
มีเหตุผลทางเทคนิคหรือไม่ที่คุณไม่สามารถพัฒนาแอพ iOS บนคอมพิวเตอร์ Linux ได้?
ฉันเข้าใจว่าทำไมคุณไม่สามารถพัฒนาแอพ OS X บนคอมพิวเตอร์ Linux แต่มีเหตุผลทางเทคนิคที่ดีว่าทำไมคุณไม่สามารถพัฒนาแอพ iPhone และ iPad บน Linux ทำไมจึงไม่สามารถคอมไพล์ซอร์สโค้ด iOS ใน iOS ที่สามารถเรียกใช้งานได้และรันใน iOS simulator บน Linux หรือติดตั้งบนอุปกรณ์ iOS ที่กำลังพัฒนา เป็นเพราะ XCode IDE เป็นแอปพลิเคชัน Cocoa หรือไม่ คุณสามารถพัฒนาแอพ Android บนแพลตฟอร์มประเภทใดก็ได้ ฉันไม่เห็นสาเหตุที่เหมือนกันไม่สามารถเป็นจริงของ iOS
23 ios  linux  xcode 

10
ประโยชน์ของ 64 บิต A7 ใน iPhone คืออะไร
ฉันพยายามหาสาเหตุว่าทำไมโปรเซสเซอร์ 64 บิตถึงเป็นเรื่องใหญ่ใน iPhone ฉันเข้าใจว่าจะมีการลงทะเบียนมากเป็นสองเท่าเพื่อให้โปรเซสเซอร์สามารถทำงานกับข้อมูลได้มากเป็นสองเท่าซึ่งควรเพิ่มประสิทธิภาพ อย่างไรก็ตามฉันไม่เห็นโทรศัพท์จำนวนมากที่จะใช้หน่วยความจำมากกว่า 4GB ในเวลาอันรวดเร็ว ดูเหมือนว่า overkill และจะส่งผลเสียต่อแบตเตอรี่ อีกปัญหาที่ฉันเห็นคือตอนนี้ตัวแปรส่วนใหญ่ต้องการหน่วยความจำมากเป็นสองเท่า สิ่งนี้จะสร้างปัญหาในสภาพแวดล้อมอุปกรณ์พกพาที่มีหน่วยความจำน้อย ฉันเชื่อว่าคนที่ Apple ฉลาดและพวกเขาอาจมีเหตุผลที่ดีในการทำเช่นนี้ฉันแค่พยายามที่จะเข้าใจพวกเขา แก้ไข ไม่ค่อยรู้เกี่ยวกับ GPU มากนัก แต่มีคนบอกฉันว่าด้วย 64 บิตเรจิสเตอร์ 2 พิกเซลสามารถโหลดลงในแต่ละรีจิสเตอร์ได้ มีข้อได้เปรียบด้านกราฟิกที่เกี่ยวข้องกับ 64 บิตหรือไม่
21 ios  iphone  64-bit 

3
Massive View Controller - IOS - โซลูชั่น
ฉันแน่ใจว่านักพัฒนา iOS ใหม่ทุกคนมีปัญหาดังต่อไปนี้: ตัวควบคุมมุมมองได้รับความแออัดอย่างรวดเร็วด้วยรหัสสำหรับวัตถุประสงค์ที่หลากหลายรับ 500 บรรทัดของรหัสได้อย่างง่ายดาย นี่คือหน้าตาพื้นฐานและหน้าจอทั่วไปสองแบบ: 1) หน้าจอแบบฟอร์ม: 2) หน้าจอควบคุมมุมมองตาราง จนถึงตอนนี้ฉันได้อ่านเกี่ยวกับโซลูชันที่แตกต่างกันสองวิธี: โซลูชั่นแรก: https://bendyworks.com/single-responsibility-principle-ios/ สิ่งนี้ยึดตามการแจ้งเตือนซึ่งแยกตัวควบคุมมุมมองออกจากตัวแบบมุมมอง (ความตั้งใจ) โดยสมบูรณ์และลดรหัสในตัวควบคุมมุมมอง ฉันคิดว่ามันมีข้อเสียของการทำลายโค้ดคล้ายกับโครงสร้างของ Go-To ดูเหมือนว่านี้: โซลูชันที่สองช่วยให้ View Controller เป็นแออัดเหมือนเดิม (การทำงานของปุ่มจะถูกดำเนินการภายใน VC และอื่น ๆ ) แต่ใช้ไลบรารีเช่นTPKeyboardAvoiding , BlocksKit หรือโซลูชันอื่น ๆ ส่วนใหญ่อ้างอิงจากหมวดหมู่ ด้วยวิธีที่สองนี้รหัสจะลดลงอย่างมาก แต่ตัวควบคุมมุมมองยังคงมีความรับผิดชอบจำนวนมาก คุณคิดอย่างไรเกี่ยวกับการแก้ปัญหาเหล่านี้? ไหนดีกว่ากัน มีดีกว่าไหม
16 mvc  ios  objective-c 

2
ฉันกำลังย้ายแอพจาก iOS ไปยัง Android: ฉันต้องรู้อะไรบ้าง [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันควรหลีกเลี่ยงหลุมพรางอะไร กระบวนทัศน์ของภาษา Java ใดที่ผู้พัฒนา Objective-C เข้าใจผิดอย่างต่อเนื่อง ฉันเรียนรู้ที่จะเขียนโปรแกรมใน Java แต่ฉันไม่ได้ทำงานอะไรนอกจาก Objective-C มานานหลายปีแล้ว รูปแบบการออกแบบแตกต่างกันระหว่าง Android และ iOS อย่างไร หากคุณทำการเปลี่ยนแปลงด้วยตัวเองส่วนใดของ Android ที่ทำให้คุณสับสนหรือใช้เวลาเรียนรู้นานกว่าที่ควรจะเป็น Eclipse OS X IDE ที่ดีที่สุดสำหรับ Android หรือไม่ สำหรับบันทึกแอปของฉันเชื่อมโยงกับ UIKit และมูลนิธิอย่างแน่นหนาดังนั้นคำว่า "การย้าย" อาจเป็นชื่อเรียกที่ไม่ถูกต้อง ฉันจะเขียนมันใหม่อย่างสมบูรณ์สำหรับ Android ไม่มีการใช้รหัสซ้ำ นอกจากนี้ฉันกำลังทำสิ่งนี้เพื่อเรียนรู้ Android ดังนั้นฉันจึงค่อนข้างล้มเหลวที่พอร์ตและเรียนรู้ Android มากกว่าใช้ทางลัด เป็นพื้นหลังเล็กน้อยคำถามนี้ได้รับการแจ้งจากประเภทของคำถามที่ฉันเห็นใน Stackoverflow บ่อยครั้งที่คุณสามารถบอกได้ว่าพื้นหลังของใครบางคนคืออะไร …
15 android  ios 

3
การสื่อสารเซิร์ฟเวอร์แอพที่ปลอดภัยของ iPhone
อะไรจะเป็นวิธีที่ดีที่สุดในการบรรลุการสื่อสารส่วนตัวระหว่างแอพ iOS และส่วนประกอบเซิร์ฟเวอร์ การมี“ คีย์ลับ” ที่ไม่มีการเปลี่ยนแปลงเดียวถูกอบเข้าในแหล่งที่มาของแอปเพียงพอหรือไม่หรือฉันต้องตั้งค่ารุ่นของคีย์“ จับมือ” ดังกล่าวแบบไดนามิกบ้างไหม? เซิร์ฟเวอร์โดยตัวของมันเองไม่สามารถเข้าถึงข้อมูลที่ละเอียดอ่อนใด ๆ ได้ดังนั้นแม้ว่าผู้ใช้จะพบจุดปลายส่วนตัว แต่ก็ไม่สามารถเข้าถึงได้ทุกที่ แต่ฉันต้องการให้ผู้อื่นซ่อนตัวจากสาธารณะ โดยพื้นฐานแล้วฉันต้องการเพิกเฉยต่อการขอเส้นทางทั้งหมดโดยเฉพาะเว้นแต่พวกเขาจะมาจากแอพ iOS ของฉัน ส่วนประกอบของเซิร์ฟเวอร์ทำงานบน RoR ถ้าสำคัญ

1
หลักการตั้งชื่อสำหรับโครงการโอเพ่นซอร์ส iOS / OSX
ไม่เสมอไป แต่ส่วนใหญ่คุณจะพบโครงการโอเพ่นซอร์ส iOS หรือ Mac OS X ที่มีชื่อขึ้นต้นด้วยตัวอักษรเริ่มต้นของชื่อและนามสกุลของผู้แต่ง NLMyProjectหากเป็นโครงการที่ได้รับจะได้รับการประพันธ์โดยนิคเลอบลังโครงการจะได้รับการอ่านเป็น ตัวอย่าง: RMSwipeTableViewCellโดย Rune Madsen EBCardCollectionViewLayoutโดย Ezequiel Becerra, SDiPhoneVersionโดย Sebastian Dobrincu LNNotificationsUIโดย Leo Natan สิ่งนั้นมาจากไหน มีคนคนหนึ่งเขียนด้วยวิธีนี้ก่อนจากนั้นคนอื่นตามมา ฉันไม่สามารถหาอะไรเกี่ยวกับมันแม้จะอยู่ในหลักเกณฑ์ของแอปเปิ้ล เป็นสำนวนที่เขียนได้ทุกที่หรือไม่?

1
การจัดระเบียบรหัสสำหรับการพัฒนาแอป iOS
ฉันได้พัฒนาแอพสำหรับแพลตฟอร์ม iOS และเมื่อฉันดำเนินการต่อไปฉันสังเกตเห็นว่าฉันทำงานหนักมากในการจัดระเบียบไฟล์ของฉัน (.h, .m, .mm) มีมาตรฐานอุตสาหกรรมหรือแนวปฏิบัติที่ดีที่สุดในเรื่องการจัดระเบียบไฟล์สำหรับโครงการ iOS หรือไม่? ไฟล์ของฉันมีคลาสที่กำหนดเอง (ด้านข้างตัวควบคุมมุมมอง), ตัวควบคุมมุมมองที่กำหนดเอง, เนื้อหาของบุคคลที่สาม, รหัสที่ใช้งานได้กับ iOS 5.0+ และรหัสที่ใช้กับเวอร์ชันก่อนหน้าเท่านั้น สิ่งที่ฉันกำลังมองหาคือทางออกสำหรับการจัดระเบียบสิ่งต่าง ๆ ในลักษณะที่คนอื่น ๆ (หรือตัวฉันเองในอีกไม่กี่ปีข้างหน้า) สามารถดูและเข้าใจโครงสร้างพื้นฐานของแอปพลิเคชันและไม่หลงทางในไฟล์หลายไฟล์ที่พบ

2
เหตุใด Apple จึงอนุญาตเฉพาะสำหรับ Static Frameworks บน iOS
เห็นได้ชัดว่า Apple มีความสามารถในการสร้างไลบรารี่ที่โหลดแบบไดนามิก (เรียกว่าเฟรมเวิร์ก) สำหรับ iOS เนื่องจากพวกมันมาพร้อมกับ XCode (เช่น UIKit) นักพัฒนาแอปมีความสามารถในการสร้างห้องสมุดแบบคงที่หรืออย่างดีที่สุดหลอก Xcode ให้คิดว่ามันกำลังโหลดเฟรมเวิร์กเมื่อมันโหลดไลบรารีแบบสแตติกจริง ๆ แล้วสิ่งนี้เรียกว่าการสร้างเฟรมปลอม แต่ไม่มีประโยชน์ในการโหลดแบบไดนามิก เหตุผลของ Apple ในการป้องกันเฟรมเวิร์กแบบไดนามิกจากนักพัฒนาแอพคืออะไร ดูเหมือนว่าจะช่วยลดความยุ่งยากในการใช้งานไลบรารีภายนอกเนื่องจากผู้พัฒนาไม่จำเป็นต้องพึ่งพาแฟล็กเกอร์ลิงค์ฟิงเกอร์หรือการพึ่งพาไลบรารีโอเพนซอร์ส ฉันเห็นเหตุผลทั่วไปคือความปลอดภัย เหตุใด Apple จึงอนุญาตบน OSX และไม่ใช่ iOS การรักษาความปลอดภัยไม่ใช่ข้อกำหนดที่มีเช่นกัน? แก้ไข: นี่ไม่เกี่ยวข้องกับ iOS 8 อีกต่อไป Apple ได้เพิ่มการรองรับเฟรมเวิร์กแบบไดนามิก

2
การมอบหมายคืออะไรและทำไมจึงมีความสำคัญในการเขียนโปรแกรม iOS
ในขณะที่ฉันสอนตัวเองการเขียนโปรแกรม iOS และแนวคิดหนึ่งที่ฉันคิดว่ายากมากที่จะสรุปคือการมอบหมาย มันคืออะไร? ทำไมและมีการใช้อย่างไร? ข้อดีคืออะไร การเขียนทางเทคนิคจากหนังสือที่ฉันอ่านทำให้ยากที่จะเข้าใจ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.