เพิ่มพฤติกรรมเพื่อลบวิธีการในการแยกวิเคราะห์

ฉันมีคลาสย่อยที่กำหนดเองของ PFObject ซึ่งติดตามไฟล์วิดีโอขนาดใหญ่บนอุปกรณ์ ฉันต้องการให้แน่ใจว่าหากฉันลบ PFObject ไฟล์วิดีโอก็จะถูกลบไปด้วย

ในตอนนี้หากมีการแทนที่วิธีการลบทุกรูปแบบ แต่ดูเหมือนว่าจะผิด มีวิธีศูนย์กลางในการเพิ่มพฤติกรรมเมื่อวัตถุถูกลบหรือไม่?


person otusweb    schedule 03.11.2015    source แหล่งที่มา
comment
คุณช่วยกรุณาชี้แจงคำถาม ไฟล์วิดีโอถูกเก็บไว้ใน Parse หรือเฉพาะในเครื่องเท่านั้น มีตะขอโค้ดคลาวด์ beforeDelete และ afterDelete ที่คุณสามารถใส่ไว้ในคลาสเพื่อจัดการการดำเนินการล้างข้อมูลเพิ่มเติมใดๆ ที่คุณอาจต้องการ   -  person Russell    schedule 03.11.2015
comment
ไฟล์จะถูกจัดเก็บไว้ในเครื่อง   -  person otusweb    schedule 04.11.2015


คำตอบ (1)


มีตะขอที่คอยจับทุกการลบที่แบ็คเอนด์ (beforeDelete ในโค้ดคลาวด์) แต่จากคำถาม ดูเหมือนว่านั่นจะจับผิดที่ เพราะไฟล์ที่ต้องการลบนั้นอยู่ในเครื่อง

แยกวิเคราะห์ SDK แบบโอเพ่นซอร์สเมื่อเร็วๆ นี้ อ่านโค้ด ดูเหมือนว่าตัวแปรการลบในท้ายที่สุดจะเรียก deleteInBackground ทั้งหมด ดังนั้นแนวคิดหนึ่ง -- ที่ฉลาดเกินไปหน่อย IMO -- ก็คือแทนที่แนวคิดนั้นเพียงอย่างเดียว แต่ฉันคิดว่ามันไม่ฉลาดเลยที่จะพึ่งพาข้อเท็จจริงที่ไม่มีเอกสารนี้

หากคุณควบคุมฝั่งผู้เรียก แนวคิดหนึ่งก็คือเพียงสร้างนโยบายที่จะไม่เรียกการลบโดยตรง และจัดเตรียมเมธอด "otuswebDelete" เพื่อทำการลบอ็อบเจ็กต์และไฟล์

หากคุณไม่สามารถควบคุมผู้โทรได้ (หรือไม่ไว้วางใจตัวเองให้จำนโยบายของคุณเอง) ฉันคิดว่าคุณจะดีกว่าภายใต้การออกแบบปัจจุบันของคุณที่จะแทนที่ตัวแปรสองสามตัว:

– delete
– delete:
– deleteInBackground
– deleteInBackgroundWithBlock:
– deleteEventually

พวกเขาทั้งหมดสามารถเรียก super เพื่อลบ จากนั้นเรียกเมธอดในคลาสย่อยเพื่อลบไฟล์ในเครื่อง ก็ไม่เลวนะไอโม

สุดท้ายนี้ ด้วยเหตุผลที่มากเกินไปที่จะให้รายละเอียดที่นี่ ฉันจึงมีนิสัยชอบ "ห่อ" PFObjects ของฉัน (คลาสย่อย NSObject ที่มีคุณสมบัติ PFObject) แทนที่จะจัดคลาสย่อยพวกมัน

ภาระของแนวทางนี้ค่อนข้างน่าเบื่อเล็กน้อยในการสร้างตัวเข้าถึงสำหรับคุณสมบัติ แต่ในทางกลับกัน ฉันสามารถควบคุม (ก) การใช้วิธี SDK ได้มากขึ้น (เช่นเดียวกับในปัญหาของคุณ) (ข) การทำให้เป็นอนุกรม (ค) การดึงข้อมูล การจัดการวัตถุที่เกี่ยวข้อง (d) เพิ่มเติม...

person danh    schedule 03.11.2015
comment
ไม่เกี่ยวข้องกับ OP แต่ในฐานะคนที่คลาสย่อย PFObject เป็นประจำ ฉันสนใจแนวคิด wrapper ของคุณ คุณได้เป็นตัวแทนของการสืบทอด PFObject หลายระดับด้วยวิธีนี้หรือไม่? เนื่องจาก PFObject อนุญาตให้มีคลาสย่อยเพียงระดับเดียวเท่านั้น - person Russell; 03.11.2015
comment
@Russell ใช่การแบ่งคลาสย่อยหลายระดับเป็นข้อดีอีกประการหนึ่งของการตัดคำ - person danh; 03.11.2015
comment
แนวคิดเรียบร้อยมากที่ฉันต้องลอง ขอบคุณสำหรับการแบ่งปัน! - person Russell; 03.11.2015