0

以下のコードを書いて、nsmutablearray をファイルマネージャーに書き込みました。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

// the path to write file
NSString *arrayFile = [documentsDirectory stringByAppendingPathComponent:arrayName];
[imagesarray writeToFile:arrayFile atomically:YES];

しかし、ファイルIDがNSFilemanagerで作成されておらず、何が問題なのかわかりません。

どなたか理由を教えてください。

4

1 に答える 1

2

このコードが失敗する原因はいくつかあります。チェックすることは次のとおりです。1)arrayFileの値が、アプリケーションサンドボックスの絶対パスにある正しいファイル名であることを確認します。アプリバンドル内またはサンドボックス外にはできません。2)imagesArrayのすべての要素がこのメソッドを介して書き込み可能であることを確認してください。このメソッドは、NSString、NSNumber、NSDate、NSData、NSArray、およびNSDictionaryオブジェクトのみを書き込みます。オブジェクトがNSDictionaryまたはNSArrayの場合、すべての要素またはサブ要素もこれら4つのタイプのいずれかである必要があります。

配列の名前は、画像の配列を作成していることを意味します。UIImageはこれらの神聖な6つのタイプの1つではないため、これは機能しません。次のようなスニペットを使用して、UIImageをJPEGまたはPNG表現に変換できます。

UIImage *image = [UIImage imageNamed:@"myimage.png"];
NSData *data = UIImagePNGRepresentation(image, 1.0);
于 2012-04-24T11:59:10.283 に答える