gpt4 book ai didi

ios - 将 NSArray 放入 TableView

转载 作者:行者123 更新时间:2023-11-29 12:46:41 26 4
gpt4 key购买 nike

我在从 NSArray 传输数据以填充 TableView 时遇到问题。我环顾四周并尝试了一些不同的方法,但到目前为止还没有运气。

这是我的代码:

#import "ListFilmController.h"
#import <WindowsAzureMobileServices/WindowsAzureMobileServices.h>
#import <QuartzCore/QuartzCore.h>
#import "AppDelegate.h"

@interface ListFilmController ()


@end

@implementation ListFilmController

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

- (void)viewDidLoad
{
[super viewDidLoad];

MSClient *client = [(AppDelegate *) [[UIApplication sharedApplication] delegate] client];

MSTable *itemTable = [client tableWithName:@"filmbuff"];

[itemTable readWithCompletion:^(NSArray *items, NSInteger totalCount, NSError *error) {

if (error) {

NSLog(@"Error: %@", error);
}
else {
_allFilms = items;
NSLog(@"Item inserted, array: %@", items);
}

}];

// 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
{
#warning Potentially incomplete method implementation.
// Return the number of sections.
return 1;

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
#warning Incomplete method implementation.
// Return the number of rows in the section.
return [_allFilms count];;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
static NSString *CellIdentifier =@"Cell";
UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

cell.textLabel.text=[_allFilms objectAtIndex:indexPath.row];

return cell;
}

我从 Azure 提取数组数据并将其传输到数组。现在我想要它,以便每个单元格都是该数组的不同行。关于如何做到这一点有什么想法吗?

最佳答案

西蒙在评论中给出了答案。我将重新发布它作为答案。 (@SimonMcLoughlin,你真的应该这样做,这样你才能获得接受的答案学分)。

在 viewDidLoad 方法中,您正在触发异步请求。该请求要在一段时间后才会得到满足。

与此同时,您的应用程序正在显示表格 View 。 TableView 调用各种数据源方法并被告知没有可以显示的单元格。

您想要做的是将 [myTableView reloadData] 调用添加到完成 block 的末尾:

[itemTable readWithCompletion:
^(NSArray *items, NSInteger totalCount, NSError *error) {

if (error) {

NSLog(@"Error: %@", error);
}
else {
_allFilms = items;
NSLog(@"Item inserted, array: %@", items);
[myTableView reloadData];
}
}];

这将导致 TableView 重新查询数据源方法 numberOfSectionsnumberOfRowsInSection:tableView:cellForRowAtIndexPath:,并且在表格 View 中显示新内容。

您可能还想添加某种消息或进度指示器,以便用户知道应用程序正在从远程服务器获取数据。您将在启动异步请求时显示消息/进度指示器,然后在调用 [myTableView reloadData] 之前在完成 block 中将其删除。

关于ios - 将 NSArray 放入 TableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23520365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com