-2

我有一个arrays包含的数组Dictionary'sUITableview我怎样才能用这个数组填充我的?

(
        (
                {
            cost = 150;
            height = 1;
            "room_number" = 1;
            "square_size" = 1;
            title = "VERTICAL BLINDS";
            width = 1;
        }
    ),
        (
                {
            cost = 285;
            height = 1;
            "room_number" = 2;
            "square_size" = 1;
            title = "UPHOLSTERY CLEANING";
            width = 1;
        },
                {
            cost = 375;
            height = 1;
            "room_number" = 2;
            "square_size" = 1;
            title = "MATTRESSES CLEANING";
            width = 1;
        }
    )
)

上面的这个数组包含 2 个元素。最后一个元素有 2 个对象

我希望数组的数组是部分(元素),字典(对象)是单元格。希望这是有道理的。

这是我尝试过的。

 if (clientDataStruct.roomsArray && indexPath.row < [clientDataStruct.roomsArray count])
    {

        NSMutableArray *fetchedArray= [clientDataStruct.roomsArray objectAtIndex:indexPath.row];
        NSDictionary *fetchedDictionary = [fetchedArray objectAtIndex:0];


        [contentLabel setText:[fetchedDictionary valueForKey:@"title"]];


        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    } else{
     [contentLabel setText:@"No Rooms - Please add a room"];   
    }

这是我从 iPatel 应用以下答案后现在得到的。

在此处输入图像描述

这是我在应用 sbarow 的答案后得到的

在此处输入图像描述

非常感谢伊帕特尔。他通过下面的回答帮助我解决了这个问题。并感谢那些降级的人。我们都是来学习的!!

4

3 回答 3

2

只需尝试以下逻辑:

NSMutableArray* nameArrayForLetter = [firstArray objectAtIndex:indexPath.section]];
NSString *nameString = [[nameArrayForLetter objectAtIndex:indexPath.row] objectForKey:@"title"];

NSLog(@"%@", nameString);

编辑:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return firstArray.count; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    NSMutableArray* nameArrayForLetter = [firstArray objectAtIndex:indexPath.section]]; 
    return nameArrayForLetter.count; 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
   NSString *CellIdentifier = [NSString stringWithFormat:@"S%1dR%1d", indexPath.section, indexPath.row]; 
   UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

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

//// write your whole code here ; 

   NSMutableArray* nameArrayForLetter = [firstArray objectAtIndex:indexPath.section]]; 
   NSString *nameString = [[nameArrayForLetter objectAtIndex:indexPath.row] objectForKey:@"title"]; 

    cell.textLabel.text = nameString; 

   return cell; 

}
于 2013-08-15T10:31:02.370 回答
0

我认为您的问题是您没有告诉表格视图要创建正确数量的单元格。您的表格视图是否只显示一个单元格而不是两个单元格?如果是这样,请确保您发送表格视图的正确信息。

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
  return [self.aTableContent count];
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   return [self.aTableContent[section] count];
}
于 2013-08-15T10:37:39.087 回答
-1

您需要指定一个视图控制器作为表视图的数据源和委托。然后,您的视图控制器需要为“节数”、“节标题”、“节中的行数”和“行单元格”返回适当的值。

对于行的单元格,您应该创建一个单元格,然后一遍又一遍地返回相同的单元格,但每次执行该方法时都会替换它的所有属性(文本标签等)。UITableView 有一个方法可以用来方便存储和重用表格视图单元格。

您可以在 Apple 的 UITableView 文档中找到所有这些的示例代码和详细说明。

于 2013-08-15T10:16:02.520 回答