我使用核心数据来设置我的所有实体.但是当我尝试创建一个新的客户实体并将其发送到模态addCustomer视图控制器时,我不断收到此错误.
*由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [UINavigationController setCustomer:]:无法识别的选择器发送到实例0x8854700'
当程序在prepareForSegue中获得addController.customer = newCustomer时,会在AccountListTableViewController.m中发生错误.
这是代码:
AccountListTableViewController.h
#import <UIKit/UIKit.h>
#import "CustomerAddViewController.h"
@class Customer;
@interface AccountListTableViewController : UITableViewController <CustomerAddDelegate, NSFetchedResultsControllerDelegate> {
@private
NSFetchedResultsController *fetchedResultsController;
NSManagedObjectContext *managedObjectContext;
}
@property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController;
@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
@end
Run Code Online (Sandbox Code Playgroud)
AccountListTableViewController.m
#import "AccountListTableViewController.h"
#import "AccountListCell.h"
#import "Customer.h"
#import "AppDelegate.h"
@implementation AccountListTableViewController
@synthesize managedObjectContext, fetchedResultsController;
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"AddAccountSegue"] ) {
CustomerAddViewController *addController = [segue destinationViewController];
addController.delegate = self;
Customer *newCustomer = [NSEntityDescription insertNewObjectForEntityForName:@"Customer" inManagedObjectContext:self.managedObjectContext];
addController.customer …Run Code Online (Sandbox Code Playgroud) 我试图将一个对象传递给我在故事板中创建的静态分组表视图.
这是我在第一个视图中用来推送第二个视图的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"Row Selected");
CustomerDetailTableViewController *detailView = [[self storyboard] instantiateViewControllerWithIdentifier:@"DetailsView"];
detailView.customer = [self.fetchedResultsController objectAtIndexPath:[self.tableView indexPathForSelectedRow]];
NSLog(@"%@",detailView.customer.firstName);
[self.navigationController pushViewController:detailView animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
firstName的NSlog是正确的,但是当推送详细信息视图时,detailView中的单元格为空.我可能只是缺少一些愚蠢的东西,但是一双新鲜的眼睛会非常感激.
以下是detailView控制器的代码:
CustomerDetailTableViewController.h
@class Customer;
#import <UIKit/UIKit.h>
@interface CustomerDetailTableViewController : UITableViewController{
Customer *customer;
UILabel *fullName;
UILabel *address;
UILabel *homePhone;
UILabel *cellPhone;
UILabel *email;
}
@property (nonatomic, strong) IBOutlet UILabel *fullName;
@property (nonatomic, strong) IBOutlet UILabel *address;
@property (nonatomic, strong) IBOutlet UILabel *homePhone;
@property (nonatomic, strong) IBOutlet UILabel *cellPhone;
@property (nonatomic, strong) IBOutlet UILabel *email; …Run Code Online (Sandbox Code Playgroud)