2012-10-17 48 views
1

我有一個表視圖與它的視圖控制器,我想用NSMutableArray中的一些數據填充此表。與NSMutableArray對象的Xcode表視圖

我有一個名爲Lugar.m和Lugar.h類,有一些性質(具有在.m文件的@synthesize),爲我顯示:

@property (nonatomic, strong) NSString *nombre; 
@property (nonatomic, strong) NSString *direccion; 
@property (nonatomic, strong) NSString *descripcion; 
@property (nonatomic, strong) NSString *precio; 

然後,我有表中的控制器查看與下列viewDidLoad方法

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
self.title [email protected]"Comer"; 
Lugar *lugar = [[Lugar alloc] init]; 
self.datosTabla = [[NSMutableArray alloc] initWithCapacity:6]; 
NSArray *nombres = [[NSArray alloc] initWithObjects:@"Masala",@"Italiano",@"Gaia",@"Pekaditos",@"Ojeda",@"Plan B", nil]; 
NSArray *direcciones = [[NSArray alloc] initWithObjects:@"C/San Roque, 5", @"C/ Moneda, 7 ",@"C/Nueva, 6", @"C/San Roque, 5", @"C/ Moneda, 7 ",@"C/Nueva, 6", nil]; 
NSArray *descripciones = [[NSArray alloc] initWithObjects:@"Bonito restaurante ecologico",@"Restaurante fino y caro", @"El mejor marisco de burgos",@"Calida recio mud", @"Calidad insuperable" , @"Calidad insuperable",nil]; 
NSArray *precios = [[NSArray alloc] initWithObjects:@"25€", @"15€", @"12€", @"6€", @"34€", @"34€",nil]; 
for (NSUInteger i = 0; i < 6; i++) { 
lugar.nombre = [nombres objectAtIndex:i]; 
lugar.direccion = [direcciones objectAtIndex:i]; 
lugar.descripcion = [descripciones objectAtIndex:i]; 
lugar.precio = [precios objectAtIndex:i]; 
[self.datosTabla insertObject:lugar atIndex:i]; 
} 

在這個文件中,我有也是cellForRowAtIndex

- (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]; 
    Lugar *tempName =[self.datosTabla objectAtIndex:indexPath.row]; 
    cell.textLabel.text = tempName.nombre; 
    } 
    return cell; 
    } 

我也有方法返回行和部分

該應用程序正常運行,但它顯示了我最後一個對象添加到mutableArray的名稱,在這種情況下,餐廳名爲:計劃B.所以我有隻需要一張6行的餐桌信息。

我試圖解決它,我花了很多小時沒有結果。 我會感謝任何幫助。 預先感謝 路易斯

PD:陣列的信息是西班牙語,比較遺憾的是

回答

1

要插入相同的對象到datosTabla陣列5倍。即使您要更改for循環的每次迭代中lugar對象的屬性,指向lugar對象的指針也不會更改。

請確保您在for循環中分配lugar對象,以便有5個不同的對象。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.title [email protected]"Comer"; 
    self.datosTabla = [[NSMutableArray alloc] initWithCapacity:6]; 
    NSArray *nombres = [[NSArray alloc] initWithObjects:@"Masala",@"Italiano",@"Gaia",@"Pekaditos",@"Ojeda",@"Plan B", nil]; 
    NSArray *direcciones = [[NSArray alloc] initWithObjects:@"C/San Roque, 5", @"C/ Moneda, 7 ",@"C/Nueva, 6", @"C/San Roque, 5", @"C/ Moneda, 7 ",@"C/Nueva, 6", nil]; 
    NSArray *descripciones = [[NSArray alloc] initWithObjects:@"Bonito restaurante ecologico",@"Restaurante fino y caro", @"El mejor marisco de burgos",@"Calida recio mud", @"Calidad insuperable" , @"Calidad insuperable",nil]; 
    NSArray *precios = [[NSArray alloc] initWithObjects:@"25€", @"15€", @"12€", @"6€", @"34€", @"34€",nil]; 
    for (NSUInteger i = 0; i < 6; i++) { 
     Lugar *lugar = [[Lugar alloc] init]; 
     lugar.nombre = [nombres objectAtIndex:i]; 
     lugar.direccion = [direcciones objectAtIndex:i]; 
     lugar.descripcion = [descripciones objectAtIndex:i]; 
     lugar.precio = [precios objectAtIndex:i]; 
     [self.datosTabla insertObject:lugar atIndex:i]; 
    } 
} 

您需要在每次填充單元格的文本字段,方法被調用,不只是當細胞==零。

- (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]; 
    } 

    Lugar *tempName =[self.datosTabla objectAtIndex:indexPath.row]; 
    cell.textLabel.text = tempName.nombre; 
} 
+0

嗨,感謝您的答案,但它仍然無法正常工作。它只是給我看最後一家餐廳。有任何想法嗎? – user1754011

+0

我忽略了問題的來源,我已經用問題和修復更新了我的答案。 – Andrew

+0

感謝它的工作。你幫了我很多 – user1754011

相關問題