質問

私はこの有線の問題を抱えています、私はファイルからコンテンツを取得してそれで私のnsmutablearrayを開始することはできません。

これが私のコードです:

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

NSLog(@"Does file exist?: %i", [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory]]);

NSMutableArray *tempArr;

tempArr = [[NSMutableArray alloc] initWithContentsOfFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory]];

これを試してみると、InitWithContentsOffile Returns(null)。ファイルが存在するかどうかを確認する行は、コンソールに「1」を印刷します。

これは、データを保存するために使用しているコードです。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
[length.text writeToFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory] atomically:NO];

私は問題なく別のプログラムでほぼ同じコードを使用しています。

ここで本当に助けが必要です、おそらく私は今のところただ盲目です...

役に立ちましたか?

解決

NSARRAYのドキュメント initWithContentsOfFile: 方法と言う:

返品値 ファイルが開いていない場合、またはファイルの内容を配列に解析できない場合、APATHまたはNILで指定されたファイルの内容を含むように初期化された配列。返されたオブジェクトは、元のレシーバーとは異なる場合があります。

の宣言は含まれていません length あなたのコードスニペットでは、私はそれを推測しています length.text NSARRAYではなく、NSSTRINGオブジェクトを返します。したがって、ファイルからそれを読み返す必要があります initWithContentsOfFile: nsStringから、nsarrayではなく。

他のヒント

ファイルの内容から配列を作成しようとすると、 ファイル しなければならない プリスト形式になります, 、そして、最も外側のプリスト要素はそうでなければなりません <array>. 。その形式がない場合、初期化は失敗し、配列は nil.

書くことによってファイルを作成しています NSString ファイルに、つまり、おそらくそれを読んでいるはずです NSString, 、ではありません NSArray.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top