ในแอปพลิเคชันของฉัน ฉันต้องจัดเก็บและอัปโหลดรูปภาพหลายรูปไปยังเซิร์ฟเวอร์โดยใช้ไลบรารี iOS UIImagePickerController มาตรฐาน ขณะนี้ฉันกำลังจัดเก็บการทำงานเพื่อจัดเก็บ UIImagePickerControllerReferenceURL สำหรับไลบรารีรูปภาพ:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let assetURL = info["UIImagePickerControllerReferenceURL"] as? URL {
assetArray.append(assetURL) //assetArray globally stored as 'fileprivate var assetArray = [URL]()'
}
}
อย่างไรก็ตาม ฉันเพิ่งอ่านเจอบางที่ที่กล้องไม่มีคีย์ "UIImagePickerControllerReferenceURL" ดังนั้นวิธีนี้อาจไม่ได้ผลเมื่อฉันไปถึงส่วนของกล้อง ดังนั้น ตอนนี้ฉันกำลังคิดตรรกะของตัวเองใหม่
ฉันใช้ KingFisher ดังนั้นฉันจึงกำลังค้นคว้าเพื่อดูว่าคุณสามารถแคชรูปภาพโดยใช้เฟรมเวิร์กนั้นได้หรือไม่ แต่ฉันไม่แน่ใจ ฉันกำลังอ่านด้วยว่าฉันสามารถคว้า URL ของรูปภาพจากกล้องโดยใช้ API ของรูปภาพ ซึ่งฉันจะลองต่อไป หากทำได้ ฉันจะคว้า URL ของรูปภาพที่กล้องถ่ายไว้ แล้วผนวกเข้ากับ AssetArray
หากนี่เป็นการอัปโหลดรูปภาพเดียว การดำเนินการนี้จะค่อนข้างง่าย แต่เนื่องจากฉันไม่ต้องการขัดขวางประสิทธิภาพของแอปพลิเคชันด้วยการจัดเก็บข้อมูล/อาร์เรย์รูปภาพขนาดใหญ่ งานนี้จึงมีความซับซ้อน
เป็นการดีที่สุดที่จะดำเนินการสิ่งที่ฉันทำต่อไป:
1) ดึง URL ของแต่ละภาพที่ฉันต้องการอัปโหลด และจัดเก็บไว้ในอาร์เรย์ URL ก่อนที่จะอัปโหลดไปยังเซิร์ฟเวอร์ ให้ดึงข้อมูลในรูปแบบ .png ของแต่ละ URL แล้วอัปโหลดรูปภาพไปยังเซิร์ฟเวอร์
2) แคชรูปภาพจริงไว้ที่ใดที่หนึ่ง ดังนั้นเมื่ออัปโหลดไปยังเซิร์ฟเวอร์ รูปภาพจะอยู่ที่นั่นอยู่แล้ว (ไม่จำเป็นต้องแปลงจาก URL -> รูปภาพ) ปัญหาที่นี่คือการมีรูปภาพจำนวนมากอาจเป็นอุปสรรคต่อประสิทธิภาพของแอปหากทำไม่ถูกต้อง
or
3) วิธีการอื่น ๆ
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก. ขอบคุณ!