我有一个具有两个自定义类(车辆&服务记录)的应用程序。当车辆被创建时,它被添加到表格视图中,并且当选择该单元格时,车辆作为属性被传递以查看驻留在标签栏控制器中的控制器。其中一个选项卡是将具有服务记录的表格视图。要创建记录,请选择一个打开另一个视图控制器的酒吧按钮项目,以在其中添加记录。将对象添加到自定义对象属性的数组
Vehicle.h
@property (nonatomic, copy) NSMutableArray *serviceRecordsArray;
Vehicle.m初始化
self.serviceRecordsArray = [[NSMutableArray alloc] init];
FirstTableViewController prepareForSegue
TabbarViewController *tabController = segue.destinationViewController;
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
self.rowSelected = [indexPath row];
tabController.vehicle = [self.vehicleArray objectAtIndex:self.rowSelected];
tabController.vehicleAtIndex = self.rowSelected;
tabController.vehicleArray = self.vehicleArray;
TabbarViewController.h
@property Vehicle *vehicle;
@property (nonatomic) NSInteger vehicleAtIndex;
@property (nonatomic) NSMutableArray *vehicleArray;
@property (nonatomic, strong) ProfileViewController *profileVC;
@property (nonatomic, strong) ServiceTableViewController *serviceTableVC;
TabbarViewController viewDidLoad中
UINavigationController *navController = self.viewControllers[0];
self.profileVC = [[navController viewControllers] objectAtIndex:0];
self.profileVC.vehicle = self.vehicle;
self.profileVC.vehicleAtIndex = self.vehicleAtIndex;
self.profileVC.vehicleArray = self.vehicleArray;
UINavigationController *navController2 = self.viewControllers[1];
self.serviceTableVC = [[navController2 viewControllers] objectAtIndex:0];
self.serviceTableVC.vehicle = self.vehicle;
self.serviceTableVC.vehicleAtIndex = self.vehicleAtIndex;
self.serviceTableVC.vehicleArray = self.vehicleArray;
profileVC和serviceTablevc.h
@property Vehicle *vehicle;
@property (nonatomic) NSInteger vehicleAtIndex;
@property (nonatomic) NSMutableArray *vehicleArray;
AddRecordViewController.h
@property Vehicle *vehicle;
AddRecordViewController.m prepareForSegue
Service *serviceRecord = [[Service alloc] init];
serviceRecord.serviceType = self.serviceTypeTextfield.text;
serviceRecord.serviceDescription = self.serviceDescriptionTextfield.text;
[self.vehicle.serviceRecordsArray addObject:serviceRecord];
serviceRecordsArray是我的车辆类中的一个可变数组,我希望在将车辆保存到文件系统之前放置记录。问题在于它一直没有用,因为我没有初始化车辆。我无法初始化它,因为每次添加记录时都需要添加到它。如何在车辆类别中添加阵列,并在车辆作为属性传递时添加到阵列中。
你是什么意思?“我无法初始化它,因为我需要能够添加到它“?如果您不初始化它,该对象不存在并且添加到该对象是不可能的。 –
我可以在对象的初始化程序中初始化它,但是当车辆作为属性传递时,数组不再被初始化。 – KFP
在这种情况下,传递方式可能有问题。代码是什么样的? –