2010-08-28 24 views
8

Diskimde bir dosyaya nsdata yazmaya çalışıyorum, aşağıdaki kodum var ve çalışmıyor, yanlış bir şey yapıyorum? yazma başarısız nedenNSData bir dosyaya yazıyor mu?

NSError *error = nil; 
[email protected]"/Users/aryaxt/Desktop/test2.avi"; 
[data writeToFile:path options:NSDataWritingAtomic error:&error]; 
NSLog(@"Write returned error: %@", [error localizedDescription]); 

Yani anlatacağım:

Boolean result = [data writeToFile:@"/Users/aryaxt/Desktop/test2.avi" atomically:YES]; 

test2.avi ben WriteToFile

+3

Bir yan notta, Objective-C'de 'BOOL' değil' BOOL 'kullanılmalıdır. –

+4

Denemeyi deneyin - [NSData writeToFile: options: error'] (http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/Reference/Reference.html#//apple_ref/ doc/uid/20000172-BCIICCHI) ve hangi hatanın bildirildiğini bize bildirin. –

+2

(ve hata ayıklayıcısında, verilerin nil olmadığını doğrulayın; belki de görüntü de sıfırdır ;-) –

cevap

31

kullanmayı deneyin benim için yaratacağı konusunda varsayıyorum, yok.

+10

'error' yalnızca yöntem' NO' döndürdüğünde incelenmelidir. Vakıf sınıfları, hata argümanında başka nesneler veya sahte hatalar veya hatta çöpler koyabilir. (Bu onların * yaptıklarını söyleyemezler *, ancak programcı sözleşmesinin bir parçası olabilir, bu yüzden dikkatli olun.) –

+0

Belgelerden konuyla ilgili biraz yan konu var: Tartışma Bu yöntem uygun olmayabilir. herkese açık dosyalara yazma. Verileri halka açık bir konuma güvenli bir şekilde yazmak için, bunun yerine NSFileHandle kullanın. Daha fazla bilgi için, bkz. Güvenli Kodlama Kılavuzu'nda Dosya İşlemlerini Koruma. " Peki hala kullanmalı mıyım yoksa kullanmamalı mıyım? – ColdSteel

+0

" herkese açık dosyalar "Ne anlama geliyor?" – ColdSteel