- (void)viewDidLoad
{
[super viewDidLoad];
self.carMakes = [[NSArray alloc]
initWithObjects:@"Chevy",
@"BMW",
@"Toyota",
@"Volvo",
@"Smart", nil];
self.carModels = [[NSArray alloc]
initWithObjects:@"Volt",
@"Mini",
@"Venza",
@"S60",
@"Fortwo", nil];
self.carImages = [[NSArray alloc]
initWithObjects:@"chevy_volt.jpg",
@"mini_clubman.jpg",
@"toyota_venza.jpg",
@"volvo_s60.jpg",
@"smart_fortwo.jpg", nil];
}
上面的代码填充在表格 View 中。我想让用户选择一些汽车,这样汽车的名称、型号和图片将保存在另一个列表中。我不知道应该在哪里保存用户选择的数据以及如何保存。
我希望稍后能够在 TableView 上显示用户选择的汽车列表。
最佳答案
您可以为此使用数组或字典。但更好的方法是创建一个模型类数组来保存这些数据。这最适合 MVC architecture .例如,您可以将模型类创建为 Car
有属性,NSString *make
, NSString *model
和 UIImage *image
在其中声明。如果要填充表格 View ,则需要创建这些汽车模型对象的数组,并在委托(delegate)方法中使用它来填充单元格。如果要持久化数据,可以将其转换为字典形式,然后将其存储为 plist。更多详情,请查看 tutorial from ray wenderlich
一个典型的模型对象看起来像,
@interface Car : NSObject {}
@property (nonatomic, retain) NSString *make;
@property (nonatomic, retain) NSString *model;
@property (nonatomic, retain) UIImage *image;
@end
创建模型对象数组,
Car *carObject = [[Car alloc] init];
carObject.make = @"Chevy";
//set other properties and create more objects
NSMutableArray *carList = [[NSMutableArray alloc] init];
[carList addObject:carObject]; //you can do this in a loop
显示时您可以使用
[carList objectAtIndex:indexPath.row].make
ETC..或者
Car *myCar = [carList objectAtIndex:indexPath.row];
cell.textLabel.text = myCar.model;
当用户选择一些汽车时,将这些模型对象保存到一个单独的数组中并保存为 plist。
关于ios - 用于保存一些实例的数组或字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13691571/