2013-07-29 44 views
0

我要成爲一個有點瘋狂了這個解決方案.. 我有一個的TableView與他的項目的表(從CSV解析陣列)我需要從這個數組來的詳細的TableView當我選擇一個單元格的列表傳遞一些數據..錯誤而從實現代碼如下數據傳遞到詳細的tableview

我蘆葦位解決方案,我試圖他們,但是這應該是最好的解決方案和代碼是符合指南..但是,當我選擇一個單元格我有一個「EXC_BAD_ACCESS」,但我不明白殭屍對象,所以我發佈所有等級:

#import "inRaggioViewController.h" 
#import "iR-DetailViewController.h" 


@implementation inRaggioViewController 

@synthesize lista, record; 


- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSMutableArray *listaNonOrdinata = [[NSMutableArray alloc]init]; 
    self.navigationItem.title = @"Tipologia"; 

    NSString *fileString = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Lista1" ofType:@"csv"] encoding:NSUTF8StringEncoding error:nil]; 
    record = [fileString csvRows]; 

    dettaglio = [[NSMutableArray alloc]init]; 
    id doppio = nil; 

    for (int i=1; i < record.count; i++) { 
     for (int j=0; j < listaNonOrdinata.count; j++) { 
      doppio = [[record objectAtIndex:i] firstObjectCommonWithArray:listaNonOrdinata]; 
      if (doppio == nil) { 
//    [dettaglio addObject:[NSNumber numberWithBool:NO]]; 
      } else { 
//    [dettaglio addObject:[NSNumber numberWithBool:YES]]; 
      } 
     } 
     if (doppio == nil) { 
      [listaNonOrdinata addObject:[[record objectAtIndex:i]objectAtIndex:0]]; 
     } 
    } 

    //Ordino array in ordine alfabetico 
    lista = [[NSArray alloc]init]; 
    lista = [listaNonOrdinata sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; 

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


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    // Return the number of sections. 
    return 1; 
} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    // Return the number of rows in the section. 
    return lista.count; 
} 


// Customize the appearance of table view cells. 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
    } 

    // Configure the cell... 
    NSString *cellValue = [lista objectAtIndex:indexPath.row]; 
    cell.textLabel.text = cellValue; 

// NSLog(@"dettaglio bool Value: %s",[[dettaglio objectAtIndex:indexPath.row]boolValue] ? @"YES" : @"NO"); 

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 

    return cell; 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    // Navigation logic may go here. Create and push another view controller. 
    NSLog(@"Selezionata riga %i",indexPath.row+1); 
     iR_DetailViewController *detailViewController = [[iR_DetailViewController alloc]init]; 
     // ... 
     // Pass the selected object to the new view controller. 
     detailViewController.navigationItem.title = [self.lista objectAtIndex:indexPath.row]; 
     [detailViewController.lista addObject:[[self.record objectAtIndex:indexPath.row+1]objectAtIndex:1]]; 
     [self.navigationController pushViewController:detailViewController animated:YES]; 
     [detailViewController release]; 
} 


#pragma mark - 
#pragma mark Memory management 

- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Relinquish ownership any cached data, images, etc. that aren't in use. 
} 

- (void)viewDidUnload { 
    // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand. 
    // For example: self.myOutlet = nil; 
} 


- (void)dealloc { 
    [dettaglio release]; 
    [record release]; 
    [lista release]; 
    [super dealloc]; 
} 


@end 

奇怪的是,在其他方法列表對象做工精細,只是在選擇方法它給人的問題...

對不起我的英文不好,我不不會說英語。謝謝你的建議!

我解決了! 謝謝大家,問題是我必須保留列表和記錄對象在viewDidLoad結束!

回答

0

如果你想添加的列表是NSArray,它將無法工作。你只能添加它,如果它是一個NSMutableArray。試試嗎?

+0

第一個TableView的列表是一個數組,但也通過把它變成NSMutableArray給我同樣的錯誤..必須是另一個問題 – Shafa95

相關問題