我有一个带有 2 个选项卡的简单多线程应用程序。每个选项卡都是一个包含许多项目的表格视图,有关它们的信息保存在 plist 文件中,其结构如下:
<key>Items</key>
<array>
<dict>
<key>Name</key>
<string>Bosch KGN36X45</string>
<key>Price</key>
<string>18890</string>
<key>Quantity</key>
<real>33</real>
</dict>
我需要在多个线程中使用此文件,例如在一个线程中,我可以使用代码删除该项目:
- (void)removeItemAtRow:(int)row
{
[items removeObjectAtIndex:row];
NSMutableDictionary *plistDict = [NSDictionary dictionaryWithObject:items forKey:@"Items"];
[self saveAppFile:plistDict];
}
我可以在其他视图控制器中打开此项目进行编辑:
- (void) updateViews
{
NSDictionary *item = [[[DataController sharedInstance] getItems] objectAtIndex:itemRow];
NSLog(@"%@", item);
self.nameLabel.text = [item objectForKey:@"Name"];
self.priceLabel.text = [NSString stringWithFormat:@"%@ руб.", [item objectForKey:@"Price"]];
self.quantityLabel.text = [NSString stringWithFormat:@"%@ шт.", [item objectForKey:@"Quantity"]];
}
因此,当在第一个线程中该项目将被删除时 - 当我在第二个线程中编辑它时 - 它将该项目保存在另一个上,现在在删除更改后的另一行上,所以我有几个问题多线程与 plist 一起工作。如何进行文件保存操作?