2012-04-24 10 views
0

以下のコードは、nsmutablearrayをfilemanagerに書き込むためのコードです。NSMutableArrayをNSFileManagerに書き込むことができません。iOS Sdk

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で作成されていませんが、問題が発生する可能性はありません。

いずれかの理由を教えてください。

+1

これはどのように作成するのですか? – rishi

+0

コードを追加すると、エラーメッセージは表示されませんが、理由は何かわかりません。 – rckoenes

+0

その配列の@RIP UIImageとIntのオブジェクトを追加していて、filemanagerから配列の内容を取得中にエラーが発生していません。オブジェクトが0だけ返されます – user1300511

答えて

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); 
+0

あなたの返信のためのおかげでJack Coxだが私のオブジェクトにはint型を追加しなければならないし、ファイルマネージャーに保存する必要がある...解決策よりも – user1300511

+1

私はちょうど私の応答を編集しました。 NSArrayのドキュメントでは、NSNumberとNSDateが許可されている2つの型が省略されています。 [NSNumber numberWithInt:]を使用すると、配列にNSNumbersの配列を作成できます。各配列には、intが含まれています。 –

+0

辞書を作成し、 "id&values"キーを持ってください。あなたのint idをキー "id"にマッピングし、配列をキー "values"にマップして辞書にファイルを書き出します。 – iDroid

関連する問題