UITableViewCells不会从我的NSArray

时间:2017-02-13 15:14:33

标签: objective-c uitableview

当我运行我的应用程序时,UITableViewCells是空白的。我试图用“NSArray sortedArray”中的内容填充它们,该内容按降序列出日期。

NSLog(@“排序数组为%@,计数为%lu,而第一个索引处的字符串为%@”,sortedArray,(unsigned long)[sortedArray count],indexed);

NSLOG OUTPUT:

2017-02-13 09:50:15.693 test [22349:7300081]排序数组是(     “2017年2月11日”,     “2017年1月25日”,     “2017年1月17日”,     “2016年12月25日”,     “2016年12月17日”,     “2016年11月25日”,     “2016年11月23日”,     “2016年11月17日”,     “2016年10月11日”,     “2016年10月6日”,     “2016年8月8日”     “2016年8月5日”,     “2016年8月1日”,     “2016年7月28日”,     “2016年7月15日”,     “2016年7月13日”,     “2016年7月11日”,     “2016年7月8日”     “2016年6月17日”,     “2016年5月17日”,     “2016年2月18日”,     “2016年1月18日”,     “2015年12月18日”,     “2015年11月18日”,     “2015年10月18日”,     “2015年9月18日”,     “2015年8月18日”,     “2015年7月18日”,     “2015年6月18日”,     “2015年5月22日”,     “2015年4月17日”,     “2015年3月17日”,     “2015年2月17日”,     “2015年1月17日” )并且计数是34而第一个索引的字符串是02/11/2017

- (void)viewDidLoad
{
[super viewDidLoad];

NSString *strSessionID = [[NSUserDefaults standardUserDefaults]
                          stringForKey:@"sessionID"];

NSString *strURL = [NSString stringWithFormat:@"http://%@/get_statement_list?session_id=%@",
                    [[NSUserDefaults standardUserDefaults]stringForKey:@"serverName"], strSessionID];


NSURL *aURL = [NSURL URLWithString:strURL];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:aURL];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];    NSArray *jsonArray = [dict objectForKey:@"statements"];
NSMutableArray *pdfs = [[NSMutableArray alloc] init];
NSArray *sortedArray = [[NSArray alloc] init];

for (int i=0; i<[jsonArray count]; i++) {
    NSDictionary* dates = [jsonArray objectAtIndex:i];
    NSString *MM=[dates objectForKey:@"month"];
    NSString *DD=[dates objectForKey:@"day"];
    NSString *YY=[dates objectForKey:@"year"];
    NSString *iDates = [NSString stringWithFormat: @"%@/%@/%@", MM, DD, YY];
    [pdfs addObject:iDates];
}

//put in descending date order
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MM/dd/yyyy"];
sortedArray = [pdfs sortedArrayUsingComparator:^NSComparisonResult(NSString
*obj1, NSString *obj2) {
    NSDate *d1 = [df dateFromString: obj1];
    NSDate *d2 = [df dateFromString: obj2];
    return [d2 compare: d1];
}];

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:
   (NSInteger)section
{
return [sortedArray count];

} 

- (UITableViewCell *)tableView:(UITableView *)tableView 
 cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:@"MyIdentifier"];
if (cell == nil) {
    cell = [[UITableViewCell alloc] 
initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyIdentifier"];
}

NSString *statements = [NSString stringWithFormat:@"%@", 
[sortedArray objectAtIndex:indexPath.row]];


cell.textLabel.text = statements;

return cell;
} 

为什么我的tableview单元格不会填充sortedArray中的对象?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果您已在Interface Builder中设置了tableview,那么您是否已连接数据源并委托给此类。如图enter image description here所示。

从表格视图中按住ctrl拖动到文件的所有者。 enter image description here

如果您以编程方式提供了tableview,则必须在代码中建立连接。