คำถามง่ายๆจริงๆ แต่ดูเหมือนจะไม่ชัดเจนในเอกสารของ Apple
Will writeToFile:atomically:
สำหรับNSData
, NSArray
ฯลฯ เขียนทับข้อมูลที่มีอยู่ในไฟล์หรือไม่?
คำถามง่ายๆจริงๆ แต่ดูเหมือนจะไม่ชัดเจนในเอกสารของ Apple
Will writeToFile:atomically:
สำหรับNSData
, NSArray
ฯลฯ เขียนทับข้อมูลที่มีอยู่ในไฟล์หรือไม่?
คำตอบ:
ใช่. มันจะ.
ต่อไปนี้คืออักขระบางตัวที่ต้องผ่านขีด จำกัด 30 อักขระ
วิธีการwriteToFile:atomically:
OVERWRITE FILE เสมอไม่ว่าจะเป็นatomically:
YES หรือ NO ก็ตาม
ข้อมูลจากApple docs (NSData ส่วน "การบันทึกข้อมูล"):
คลาส NSData และคลาสย่อยจัดเตรียมเมธอดในการบันทึกเนื้อหาลงในดิสก์อย่างรวดเร็วและง่ายดาย เพื่อลดความเสี่ยงของการสูญหายของข้อมูลวิธีการเหล่านี้มีตัวเลือกในการบันทึกข้อมูลแบบอะตอม Atomic เขียนรับประกันว่าข้อมูลจะได้รับการบันทึกอย่างครบถ้วนหรือล้มเหลวอย่างสมบูรณ์ การเขียนปรมาณูเริ่มต้นด้วยการเขียนข้อมูลลงในไฟล์ชั่วคราว หากการเขียนนี้สำเร็จเมธอดจะย้ายไฟล์ชั่วคราวไปยังตำแหน่งสุดท้าย
ไม่มีคำใด ๆ เกี่ยวกับการตรวจสอบว่ามีไฟล์อยู่หรือไม่
ตัวอย่างเช่นสำหรับวิธีการcopyItemAtPath:toPath:error:
ในเอกสาร (NSFileManager หัวข้อ Discussion) ที่เขียนโดยเฉพาะเกี่ยวกับการตรวจสอบดังกล่าว:
หากไฟล์ที่มีชื่อเดียวกันมีอยู่แล้วที่ dstPath วิธีนี้จะหยุดการพยายามคัดลอกและส่งกลับข้อผิดพลาดที่เหมาะสม