私のplistはarray with dictionaries
.
起動時に、.plist がまだ存在しない場合はコピーさbundle
れます。documents directory
ただし、plist が既に存在する場合documents directory
:
各ディクショナリは、バンドル内の更新されたツイン ディクショナリと照合して、"District" 文字列の変更を探す必要があります。
そしてもちろん、変更があった場合は弦を交換してください。
これはコピー plist 関数です。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self copyPlist];
return YES;
}
- (void)copyPlist {
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Wine.plist"];
NSString *bundle = [[NSBundle mainBundle] pathForResource:@"Wine" ofType:@"plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path]) {
[fileManager copyItemAtPath:bundle toPath:path error:&error];
} else {
//I need to check if the "District" value has been changed in any of the dictionaries.
}
}
これを行う方法についての提案、または有用なチュートリアル/サンプル コードはありますか?
私の推測では、plist の内容を NSMutableArrays:bundleArray
およびdocumentsArray
. 次に、配列内で一致する辞書を見つけます。「名前」文字列が等しいことを確認することで実行できます。次に、一致する辞書で 2 つの "District" 文字列を比較し、変更を探して、変更されたものを置き換えます。しかし、私はそれがどのように行われるべきかわからないので、これは非常に重要なので、どんな助けも非常に役に立ちます!