1

非常熟悉 Android 编程,但对 iOS(和 Objective-C)非常陌生。

我在我的应用程序中调用了一个远程 php 文件,并且(我相信)根据我的 NSLOG 结果成功解析了 JSON 结果。例子:

2013-01-17 14:24:30.611 JSON TESTING 4[1309:1b03] Deserialized JSON Dictionary = {
products =     (
            {
        BF = "";
        EN = "2342";
        Measure = ft;
        Name = "Brian";
        "Name_id" = 1;
        Home = "New York";
        "DB_id" = 1;
    },
            {
        BF = "";
        EN = "2123";
        Measure = ft;
        Name = "Rex";
        "Name_id" = 3;
        Home = "New York";
        "DB_id" = 5;
    }
);
success = 1;

}

我的问题在于如何将这些信息填充到表格视图中。我可以定制一个原型单元,但我该去哪里呢?

编辑:

这是我的视图设置代码:

#pragma mark - Table View

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return productArray.count;
    NSLog(@"Number of arrays %u", productArray.count);
}

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


    NSDictionary *productDictionary = [productArray objectAtIndex:indexPath.row];
    cell.textLabel.text = [productDictionary objectForKey:@"BF"];

    return cell;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self launchTest];
}

和我的 .h 文件

@interface tpbaMasterViewController : UITableViewController 
{
    NSDictionary *lists;
    NSArray *productArray;
}

- (void) launchTest;

@property (strong, nonatomic) IBOutlet UITableView *tableView;



@end
4

1 回答 1

5

NSDictionary您在usingobjectForKey方法中访问对象。例如,要获取NSArray字典中的产品:

NSArray *productArray = [myDictionary objectForKey:@"products"];

现在你有一个包含两个字典对象的数组。对于各种UITableViewDataSource方法,您可以查询数组。几个例子:

对于– tableView:numberOfRowsInSection:,返回数组中的对象数:

`return productArray.count;`

对于tableView:cellForRowAtIndexPath:

NSDictionary *productDictionary = [productArray objectAtIndex:indexPath.row];
    myCell.bfLabel.text = [productDictionary objectForKey:@"BF"];
    myCell.enLabel.text = [productDictionary objectForKey:@"EN"];
   //  continue doing the same for the other product information

在 .m 文件中声明productArray如下所示,使其在您的视图控制器中可见(假设productDictionary是一个属性:

@interface MyCollectionViewController () {
    NSArray *productArray;
}
@end
...
@implementation MyCollectionViewController

    -(void)viewDidLoad{
        [super viewDidLoad];

        productArray = [self.myDictionary objectForKey:@"products"];
    }
...
@end
于 2013-01-17T22:39:47.447 回答