我有一个包含以下部分的应用程序:


StoreDataController.h
StoreDataController.m
StoreTableViewController.h
StoreTableViewController.m


我在StoreDataController中创建了一个属性和方法,该属性和方法从URL检索数据并将其转换为JSON。然后将其存储在数组中。我试图让表控制器显示表中的数组,但未显示。要使表格显示数组的内容,我需要做什么?这是我的代码:

StoreDataController.h

@interface StoreDataController : NSObject
@property (nonatomic, retain) NSArray *storeNames;
-(void)addStoreNamesObject:(NSArray *)storeNames;
@end


StoreDataController.m

#import "StoreDataController.h"
#import "SBJson.h"

@implementation StoreDataController

-(void)addStoreNamesObject:(NSArray *)storeNames
{
NSString *strURL = [NSString stringWithFormat:@"http://10.247.245.87/stores/dodge.php"];
NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];
NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];
storeNames = [strResult JSONValue];
}
@end


StoreTableViewController.h

#import <UIKit/UIKit.h>
@class StoreDataController;

@interface StoreTableViewController : UITableViewController

@property (nonatomic, retain) StoreDataController *storeNameController;
@end


StoreTableViewController.m

#import "StoreTableViewController.h"
#import "StoreDataController.h"

@interface StoreTableViewController ()

@end

@implementation StoreTableViewController

- (void)awakeFromNib
{
    [super awakeFromNib];
}

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

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return _storeNameController.storeNames.count;
}

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

    cell.textLabel.text = [_storeNameController.storeNames objectAtIndex:indexPath.row];
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
 <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];

 [self.navigationController pushViewController:detailViewController animated:YES];
 */
}
@end

最佳答案

您至少需要一些东西来设置storeNameController中的StoreTableViewController属性,以便它引用进行构建数组工作的StoreDataController对象。

如何执行取决于创建StoreDataController对象的方式以及与视图控制器的关系。

(此外:通常,应使用self.propertyName而不是_propertyName。)

关于ios - Xcode数据 Controller 问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13178027/

10-12 22:09