0

こんにちは、私はplistsを使って練習しています.plistsをロードするには2つの異なる方法があることを学びました.

最初の方法:

NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documents = [path lastObject];
NSString *filePath = [documents stringByAppendingPathComponent:@"test.plist"]; 
self.array = [NSArray arrayWithContentsOfFile:filePath];

2 番目の方法:

NSString *filePath = [[NSBundle mainBundle]pathForResource:@"Ingredients" ofType:@"plist"];
self.array = [NSArray arrayWithContentsOfFile:filePath];

どちらがいいのかはっきりとはわかりませんが… 2つ目を使うとplistに書き込めないことに気づきました。誰か私にそれについてもっと教えてもらえますか?最善かつ正しい方法はどれですか?違いは何ですか?

私はいくつかのテストを行っており、1つのメソッドでのみ機能するコードがいくつかあります...

//using this code the nslog will print null

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsPath = [paths objectAtIndex:0];
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"Ingredients.plist"];
    ingredients = [NSMutableArray arrayWithContentsOfFile:filePath];
    NSLog(@"ingredients:%@", self.ingredients);



//using this code the nslog will print the content of the array

    NSString *filePath = [[NSBundle mainBundle]pathForResource:@"Ingredients" ofType:@"plist"];
    ingredients = [NSMutableArray arrayWithContentsOfFile:filePath];

    NSLog(@"Authors:%@", self.ingredients);
4

1 に答える 1