2014-02-24 39 views
0

我在iOS應用程式中建立了一個視圖控制器,當按下一個提交按鈕時,將物件放入數組中。但是,我收到一個錯誤,指出在對象中找不到'item'屬性。我懷疑這是因爲'item'是在不同的實現XYZMatchCenterViewController.m中定義的,但我不確定如何使它成爲XYZBuyViewController.m使用它。在物件上找不到物件「物品」

XYZBuyViewController.m:

#import "XYZBuyViewController.h" 

@interface XYZBuyViewController() 

@property (weak, nonatomic) IBOutlet UITextField *itemName; 

@property (weak, nonatomic) IBOutlet UIButton *submitButton; 

@end 

@implementation XYZBuyViewController 


- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if (sender != self.submitButton) return; 
    if (self.itemName.text.length > 0) { 
     self.Item = [[XYZItem alloc] init]; 
     self.Item.itemName = self.itemName.text; 
    } 
} 


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 

XYZMatchCenterViewController.m:

#import "XYZMatchCenterViewController.h" 
#import "XYZItem.h" 

@interface XYZMatchCenterViewController() 

@property NSMutableArray *items; 

@end 

@implementation XYZMatchCenterViewController 

- (id)initWithStyle:(UITableViewStyle)style 
{ 
    self = [super initWithStyle:style]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.items = [[NSMutableArray alloc] init]; 

    // Uncomment the following line to preserve selection between presentations. 
    // self.clearsSelectionOnViewWillAppear = NO; 

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller. 
    // self.navigationItem.rightBarButtonItem = self.editButtonItem; 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

#pragma mark - Table view data source 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    // Return the number of sections. 
    return [self.items count]; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 

    // Return the number of rows in the section. 
    return 3; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"ListPrototypeCell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

    XYZItem *Item = [self.items objectAtIndex:indexPath.row]; 
    cell.textLabel.text = Item.itemName; 

    return cell; 
} 

/* 
// Override to support conditional editing of the table view. 
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Return NO if you do not want the specified item to be editable. 
    return YES; 
} 
*/ 

/* 
// Override to support editing the table view. 
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     // Delete the row from the data source 
     [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
    } 
    else if (editingStyle == UITableViewCellEditingStyleInsert) { 
     // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view 
    } 
} 
*/ 

/* 
// Override to support rearranging the table view. 
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath 
{ 
} 
*/ 

/* 
// Override to support conditional rearranging of the table view. 
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Return NO if you do not want the item to be re-orderable. 
    return YES; 
} 
*/ 

/* 
#pragma mark - Navigation 

// In a story board-based application, you will often want to do a little preparation before navigation 
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Get the new view controller using [segue destinationViewController]. 
    // Pass the selected object to the new view controller. 
} 

*/ 

@end 
+0

您是否嘗試添加#import「XYZItem.h」行? – Gruntcakes

+0

是的,似乎沒有工作。 – TheDudeGuy

回答

0

您還沒有聲明的item財產所有。你有一個名爲items的房產 - 或許你的意思是。

+0

我指的是 'XYZItem * Item = [self.items objectAtIndex:indexPath.row]; cell.textLabel.text = Item.itemName;出現在MatchCenterViewController中的' 。 – TheDudeGuy