2012-09-27 9 views
5

तो +(id)dataWithContentsOfMappedFile:(NSString *)path आईओएस 5.0 के बाद स्पष्ट रूप से बहिष्कृत है। यह मुझे लगता है जैसे मुझे इसका उपयोग करने से बचना चाहिए, लेकिन फिर इसके बजाय मुझे क्या उपयोग करना चाहिए?एनएसडीटा के लिए विकल्प बहिष्कृत डेटाविथकंट्सऑफमैप्डफाइल

मैं मेमोरी मैप की गई फ़ाइलों को बनाने के लिए एमएमएपी का उपयोग कर रहा था और यह आईओएस 5 के साथ काम करता था, लेकिन आईओएस 6 में, कुछ गलत है क्योंकि जैसे ही मैं बफर को अपडेट या पढ़ने की कोशिश करता हूं, मुझे एक त्रुटि मिलती है।

int fd = open(path, O_RDWR); 
    off_t offset = 0; 
    snapshotData = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, offset); 
    close(fd); 

उत्तर

10

+dataWithContentsOfFile:options:error: का उपयोग करें। विकल्प के रूप में NSDataReadingMappedIfSafe पास करें। आप इसके बजाए NSDataReadingMappedAlways का भी उपयोग कर सकते हैं, लेकिन मैं पूर्व की सलाह देता हूं जब तक कि इसे वास्तव में मैप नहीं किया जाता। यदि यह वास्तव में मैप किया जाना चाहिए, NSDataReadingMappedAlways अभी भी एक संकेत है, इसलिए कोई वादा नहीं है। वादा पाने के लिए, आपको इसे स्वयं लिखना होगा, as discussed at CIMG

+0

मैं सीआईएमजी में सुझाए गए अनुसार लागू करने की कोशिश करूंगा। सूचक के लिए धन्यवाद। – mprivat

संबंधित मुद्दे