こんにちは、私は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);